From 97c95b8a036b31f914953b92e9572869ef20baa5 Mon Sep 17 00:00:00 2001 From: Josepablo C Date: Sun, 10 Mar 2024 17:39:30 -0600 Subject: [PATCH] feat(CI): Adding automatic deployment to hostinger --- .gitignore | 2 ++ .gitlab-ci.yml | 8 ++++++++ scripts/ci_functions.sh | 13 +++++++++++++ scripts/ssh_install_script.sh | 25 +++++++++++++++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 scripts/ssh_install_script.sh diff --git a/.gitignore b/.gitignore index 38adffa..39c350b 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,5 @@ coverage *.njsproj *.sln *.sw? +scripts/env.sh +**.zip \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 64d97b3..79c0d57 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,6 @@ stages: - build + - deploy variables: PIPELINE_WORK_DIR: "./" @@ -22,3 +23,10 @@ build-job: only: - master +deploy-job: + stage: deploy + script: + - . ./scripts/ci_functions.sh + - deploy + only: + - master diff --git a/scripts/ci_functions.sh b/scripts/ci_functions.sh index 4c6442c..d6c110d 100644 --- a/scripts/ci_functions.sh +++ b/scripts/ci_functions.sh @@ -13,3 +13,16 @@ function build_static(){ zip -r $BUILD_NAME.zip dist/ set +x } + +function deploy(){ + # Global Env Var: SYSTEM_HOSTINGER_HOSTNAME + # Global Env Var: SYSTEM_HOSTINGER_SSH_USERNAME + # Global Env Var: SYSTEM_HOSTINGER_SSH_PORT + # Global Env Var: BUILD_NAME + INSTALL_PATH="public_html/subdomains/console/" + set -x + scp -i ~/.ssh/id_rsa -P $SYSTEM_HOSTINGER_SSH_PORT ./$BUILD_NAME.zip "$SYSTEM_HOSTINGER_SSH_USERNAME"@"$SYSTEM_HOSTINGER_HOSTNAME":~/$INSTALL_PATH + scp -i ~/.ssh/id_rsa -P $SYSTEM_HOSTINGER_SSH_PORT ./scripts/ssh_install_script.sh "$SYSTEM_HOSTINGER_SSH_USERNAME"@"$SYSTEM_HOSTINGER_HOSTNAME":~/$INSTALL_PATH + ssh -i ~/.ssh/id_rsa -p $SYSTEM_HOSTINGER_SSH_PORT "$SYSTEM_HOSTINGER_SSH_USERNAME"@"$SYSTEM_HOSTINGER_HOSTNAME" "cd ~/$INSTALL_PATH && bash ssh_install_script.sh && rm ssh_install_script.sh" + set +x +} diff --git a/scripts/ssh_install_script.sh b/scripts/ssh_install_script.sh new file mode 100644 index 0000000..cccfd08 --- /dev/null +++ b/scripts/ssh_install_script.sh @@ -0,0 +1,25 @@ +#! /bin/bash +# Execute from Hostinger machine +ZIP_FILE="enruta_web_dashboard.zip" +INSTALL_PATH="public_html/subdomains/console/" + +if [[ -e "$ZIP_FILE" ]]; then + cd ~/$INSTALL_PATH + # Delete previous revision + rm -rf assets/ dist/ images/ .htaccess favicon.ico index.html + # Unzip new revision and install + unzip $ZIP_FILE + mv dist/* . + mv dist/.htaccess . + # Remove garbage + rm -rf dist/ + rm $ZIP_FILE + # Update revision date + date > updated_at +else + echo "Zip file not available or renamed!" + exit -1 +fi + + +