Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

How to remove files from a previous deployment with sftp-deploy pipeline



This is a step of my yml file :

- step: &build-deploy-dev
name: 'Build + Deployment - DEV'
size: 2x
- node
deployment: test
- npm run build-prod
- pipe: atlassian/sftp-deploy:0.5.4
REMOTE_PATH: '/var/www/html/'
LOCAL_PATH: 'dist/*'
EXTRA_ARGS: 'rm *'

I'm trying to delete the files previously deployed on the remote server before copying the new ones but the EXTRA_ARGS command doesn't work :/.

Because the build-prod command generate files like : main.js?qd87dz8z25zd4
The number at the end changes at each build, so i need to clean up the remote folder in order to prevent to have a lot of main.js?XXXXXX outdated.

3 answers

2 accepted

0 votes
Answer accepted

The downside of using a rm here is that there's a short time when your web site isn't available. Also, if the later deployment phase stops (e.g. due to failure) your web site is down. Another approach that is worth considering is this:

  1. Deploy to a folder location which has directories within it which includes the build or deployment number (e.g. www/website/v1 , www/website/v2 www/website/v3)
  2. Have a symbolic link that points to the current release (e.g.  www/website/latest -> www/website/v3)
  3. Once the new release (www/website/v4) is deployed successfully switch the symbolic link (www/website/latest -> www/website/v4)
  4. Delete all releases automatically that are older than X and are not the symbolic link.


You can extend this to also have a simple rollback by having an 'old' link. To rollback, a script would move all the symbolic links back. Old can't really change though and you need to think through changing the links there.

0 votes
Answer accepted

The problem is solved by the ssh-run pipeline :

- pipe: atlassian/ssh-run:0.2.4
COMMAND: 'rm -rf /var/www/html/*'
DEBUG: 'false'
- pipe: atlassian/sftp-deploy:0.5.4
REMOTE_PATH: '/var/www/html/'
LOCAL_PATH: 'dist/*'
DEBUG: 'false'
0 votes
Julian I'm New Here Jan 12, 2022

Sorry for refloating this old post...

I'm confronted with the same situation and would really appreciate a more detailed "instructions".

The symlink to the current deployment: can I update automatically as part of my pipeline in the last step?

The version to which to redirect the symlink: can that be updated automatically with some random generator?

For removing all folders from old deployments: should I set up a linux job for that? How do I exclude the folder that is currently being referenced in the symlink?


Thanks much!


Suggest an answer

Log in or Sign up to answer
Community showcase
Published in Bitbucket

📣 Calling Bitbucket Data Center customers to participate in research

Hi everyone, Are you Bitbucket DC customer? If so, we'd love to talk to you! Our team wants to dive deep to understand your long-term plans regarding Bitbucket DC and Atlassian Cloud. Do you plan...

233 views 2 5
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you