diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 00c6e368ed3c0f13ece70c59fb0c8bbd55c6b7ee..92fe283d88bb950503d1631a7a9c2d25a1aff17f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -88,31 +88,25 @@ publish-ondemand-repository: dependencies: - build-local-repository script: - - apt update && apt install -y sshpass + - apt update && apt install -y rsync sshpass - | set -e - DESTINATION_FOLDER="${ONDEMAND_DESTINATION_FOLDER:-Stable}" + DESTINATION_FOLDER="${ONDEMAND_DESTINATION_FOLDER:-rsynctest}" TEMP_FOLDER="${DESTINATION_FOLDER}-new" BACKUP_FOLDER="${DESTINATION_FOLDER}-old" - echo "Uploading files to temporary folder $TEMP_FOLDER in FTP ..." - sshpass -p "$VNF_CATALOG_CREDENTIALS" sftp -o "StrictHostKeyChecking no" -P $SFTP_PORT $SFTP_USER@$SFTP_SERVER << EOF - mkdir $TEMP_FOLDER - put -r vnf-catalog/* $TEMP_FOLDER - EOF + echo "Uploading files to temporary folder $TEMP_FOLDER via rsync ..." + sshpass -p "$VNF_CATALOG_CREDENTIALS" rsync -avz --delete -e "ssh -o StrictHostKeyChecking=no" vnf-catalog/ $SFTP_USER@$SFTP_SERVER:$TEMP_FOLDER echo "Switching directories..." - sshpass -p "$VNF_CATALOG_CREDENTIALS" sftp -o "StrictHostKeyChecking no" -P $SFTP_PORT $SFTP_USER@$SFTP_SERVER << EOF - rename $DESTINATION_FOLDER $BACKUP_FOLDER - rename $TEMP_FOLDER $DESTINATION_FOLDER + sshpass -p "$VNF_CATALOG_CREDENTIALS" ssh -o "StrictHostKeyChecking no" -p $SFTP_USER@$SFTP_SERVER << EOF + rm -rf $BACKUP_FOLDER + mv $DESTINATION_FOLDER $BACKUP_FOLDER + mv $TEMP_FOLDER $DESTINATION_FOLDER EOF - echo "Cleaning up temporary folder $TEMP_FOLDER..." - sshpass -p "$VNF_CATALOG_CREDENTIALS" sftp -o "StrictHostKeyChecking no" -P $SFTP_PORT $SFTP_USER@$SFTP_SERVER << EOF - rmdir $TEMP_FOLDER - EOF when: manual # This job is run on demand allow_failure: true environment: name: production - url: "ftp://$SFTP_SERVER/$DESTINATION_FOLDER" + url: "rsync://$SFTP_SERVER/$DESTINATION_FOLDER"