We’re running an older gen project and we need to deploy pushes to our main branch using LFTP from Gitlab. The problem we’re having is that each push uploads all of the files instead of only changes. Currently our pipeline looks like this:
image: ubuntu:18.04
before_script:
- apt-get update -qy
- apt-get install -y lftp
build:
script:
# Sync to FTP
- lftp -e "set ftp:ssl-allow no;open $FTP_IP; user $FTP_USERNAME $FTP_PASSWORD; mirror -X .* -X .*/ --reverse --verbose -n localDir/ remoteDir/; bye"
I’ve googled what to do, but didn’t find a clear answer. Can anyone help me with this situation?
Thanks
So the only-newer option didn't work due to the timestamps not being correct. There's a tool in GIT that restore timestamps so I just chucked that in and it now works as it should...
Looks like this now:
build:
image: ubuntu:latest
stage: build
script:
- apt update
- apt install git-restore-mtime -y
# - ls -la
# This command restores the modified timestamps from commits
- /usr/lib/git-core/git-restore-mtime
# - ls -la
- apt-get update -qy
- apt-get install -y lftp
# Sync to FTP
- lftp -e "set ftp:ssl-allow no;open $FTP_IP; user $FTP_USERNAME $FTP_PASSWORD; mirror -X .* -X .*/ --reverse --verbose --only-newer -n localDir/ remoteDir/; bye"