chore: add deployment script for staging environment
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user