From 2ba8a63d53b0c7619ca61fdbce24440e6f013e1d Mon Sep 17 00:00:00 2001 From: Kelvin Obioha Date: Fri, 17 May 2024 23:33:45 +0100 Subject: [PATCH] Add github actions ci cd pipeline --- .github/workflows/ci-cd.yml | 91 +++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 .github/workflows/ci-cd.yml diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml new file mode 100644 index 0000000..fed5028 --- /dev/null +++ b/.github/workflows/ci-cd.yml @@ -0,0 +1,91 @@ +name: Smart-Exchange-Deployment + +on: + push: + branches: [main, master] + +permissions: + id-token: write + contents: read + +jobs: + Deploy: + name: Deploy to EC2 + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: SSH and Deploy + env: + PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} + HOSTNAME: ${{ secrets.EC2_REMOTE_HOST }} + USER_NAME: ubuntu + + run: | + echo "$PRIVATE_KEY" > private_key + chmod 600 private_key + ssh -o StrictHostKeyChecking=no -i private_key ${USER_NAME}@${HOSTNAME} << 'EOF' + # Now we have got the access of EC2 and we will start the deploy. + cd /home/ubuntu/app/smartchange-backend-v1 + git pull + sudo npm install + sudo systemctl restart smart + EOF + rm private_key + +# - name: rsync deployments +# uses: burnett01/rsync-deployments@5.1 +# with: +# switches: -avzr --delete +# path: ./* +# remote_path: /home/ubuntu/app/smartchange-backend-v1 +# remote_host: ${{ secrets.EC2_REMOTE_HOST }} +# remote_user: ubuntu +# remote_key: private_key +# remote_port: 22 + +# - name: Stop smart service +# run: | +# ssh -o StrictHostKeyChecking=no -i private_key ubuntu@${{ secrets.EC2_REMOTE_HOST }} 'sudo systemctl stop smart' +# continue-on-error: true + +# - name: Start smart service +# run: | +# ssh -o StrictHostKeyChecking=no -i private_key ubuntu@${{ secrets.EC2_REMOTE_HOST }} 'sudo systemctl start smart' +# continue-on-error: true + +# - name: Clean up +# run: rm private_key +# if: always() + +# on: +# push: +# branches: [main, master] + +# jobs: +# Deploy: +# name: Deploy to EC2 +# runs-on: ubuntu-latest + +# steps: +# - uses: actions/checkout@v2 +# - name: Build & Deploy +# env: +# PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} +# HOSTNAME: ${{secrets.SSH_HOST}} +# USER_NAME: ${{secrets.USER_NAME}} + +# run: | +# echo "$PRIVATE_KEY" > private_key && chmod 600 private_key +# ssh -o StrictHostKeyChecking=no -i private_key ${USER_NAME}@${HOSTNAME} ' + +# # Now we have got the access of EC2 and we will start the deploy . +# cd /home/ubuntu/ && +# git checkout dev && +# git fetch --all && +# git reset --hard origin/dev && +# git pull origin dev && +# sudo npm i && +# sudo npm run build && +# sudo pm2 stop ./dist/index.js &&