-
Notifications
You must be signed in to change notification settings - Fork 0
90 lines (75 loc) · 2.68 KB
/
ci-cd.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
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 &&