Skip to content

Add github actions ci cd pipeline #25

Add github actions ci cd pipeline

Add github actions ci cd pipeline #25

Workflow file for this run

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/[email protected]
# 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/<PROJECT_DIRECTORY> &&
# 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 &&