From 5387a1d2c94649b85a018933d5157b4dc908dba7 Mon Sep 17 00:00:00 2001 From: garciadeblas Date: Mon, 31 Mar 2025 15:55:36 +0200 Subject: [PATCH] Update gitlabci.yml to use rsync for VNF catalog publication Signed-off-by: garciadeblas --- .gitlab-ci.yml | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 00c6e368..92fe283d 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" -- GitLab