From c709ce9e8d57bd2369ab5d992756cf9a9fed0698 Mon Sep 17 00:00:00 2001 From: Mitch Hijlkema Date: Fri, 28 Nov 2025 20:23:25 +0100 Subject: [PATCH] chore: add deployment script for staging environment --- .onedev-buildspec.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/.onedev-buildspec.yml b/.onedev-buildspec.yml index e69de29..090ba0e 100644 --- a/.onedev-buildspec.yml +++ b/.onedev-buildspec.yml @@ -0,0 +1,29 @@ +deploy_staging: + stage: deploy + script: + - eval $(ssh-agent -s) + - echo "$SSH_REPO_KEY" | tr -d '\r' | ssh-add - > /dev/null + - mkdir -p ~/.ssh && touch ~/.ssh/known_hosts + - echo "$SSH_STAGING_KNOWN_HOST" >> ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + + # Make a temp folder + - ssh -p22 root@${STAGING_IP} "mkdir -p /var/www/html/${SITE_DIR}_tmp" + # Copy the files from the repo to the temp folder + - rsync -rav -e ssh --exclude='.git/' --exclude='.gitlab-ci.yml' --exclude='gulpfile.js' --delete-excluded ./ root@${STAGING_IP}:/var/www/html/${SITE_DIR}_tmp + # Rename current site into backup + - ssh -p22 root@${STAGING_IP} "mv /var/www/html/${SITE_DIR} /var/www/html/${SITE_DIR}_bak" + # Copy uploads folder to temp + - ssh -p22 root@${STAGING_IP} "cp -rf /var/www/html/${SITE_DIR}_bak/wp-content/uploads /var/www/html/${SITE_DIR}_tmp/wp-content/uploads" + # Make the temp folder the actual site + - ssh -p22 root@${STAGING_IP} "cp -rf /var/www/html/${SITE_DIR}_tmp /var/www/html/${SITE_DIR}" + # Set the ownership and permissions + - ssh -p22 root@${STAGING_IP} "find /var/www/html/${SITE_DIR} -type f -exec chmod 644 {} \;" + - ssh -p22 root@${STAGING_IP} "find /var/www/html/${SITE_DIR} -type d -exec chmod 755 {} \;" + - ssh -p22 root@${STAGING_IP} "chown -R www-data:www-data /var/www/html/${SITE_DIR}" + # Remove the old site + - ssh -p22 root@${STAGING_IP} "rm -rf /var/www/html/${SITE_DIR}_bak" + # Remove the temp site + - ssh -p22 root@${STAGING_IP} "rm -rf /var/www/html/${SITE_DIR}_tmp" + only: + - staging