|
1 | | -name: Continuous Deployment for backend |
| 1 | +name: Continuous Deployment Pipeline for backend |
2 | 2 |
|
3 | 3 | on: |
4 | 4 | push: |
|
8 | 8 | - 'backend/**' |
9 | 9 |
|
10 | 10 | jobs: |
11 | | - pull: |
12 | | - name: Pull Stage |
| 11 | + push: |
| 12 | + name: Push Stage |
13 | 13 | runs-on: ubuntu-latest |
14 | 14 |
|
15 | 15 | steps: |
16 | | - - name: Sync with remote repository |
| 16 | + - name: Sync local repo with remote repo |
17 | 17 | uses: appleboy/ssh-action@master |
18 | 18 | env: |
19 | | - IQPS_DIR: ${{ secrets.IQPS_DIR }} |
| 19 | + PROJECT_DIR: ${{ secrets.PROJECT_DIR }} |
20 | 20 | with: |
21 | | - host: ${{ secrets.HOSTNAME }} |
22 | | - username: ${{ secrets.USERNAME }} |
| 21 | + host: ${{ secrets.SSH_HOSTNAME }} |
| 22 | + username: ${{ secrets.SSH_USERNAME }} |
23 | 23 | key: ${{ secrets.SSH_PRIVATE_KEY }} |
24 | | - passphrase: ${{ secrets.PASSPHRASE }} |
25 | | - envs: IQPS_DIR |
| 24 | + passphrase: ${{ secrets.SSH_PRIVATE_KEY_PASSPHRASE }} |
| 25 | + envs: PROJECT_DIR |
26 | 26 | script_stop: true |
27 | 27 | script: | |
28 | | - cd "${IQPS_DIR}/" |
| 28 | + cd "${PROJECT_DIR}/" |
29 | 29 | sudo git fetch origin |
30 | 30 | sudo git reset --hard origin/main |
31 | 31 |
|
32 | 32 | build: |
33 | 33 | name: Build Stage |
34 | | - needs: pull |
| 34 | + needs: push |
35 | 35 | runs-on: ubuntu-latest |
36 | 36 |
|
37 | 37 | steps: |
38 | | - - name: Build the latest docker container |
| 38 | + - name: Build the latest container(s) |
39 | 39 | uses: appleboy/ssh-action@master |
40 | 40 | env: |
41 | | - IQPS_DIR: ${{ secrets.IQPS_DIR }} |
| 41 | + PROJECT_DIR: ${{ secrets.PROJECT_DIR }} |
42 | 42 | with: |
43 | | - host: ${{ secrets.HOSTNAME }} |
44 | | - username: ${{ secrets.USERNAME }} |
| 43 | + host: ${{ secrets.SSH_HOSTNAME }} |
| 44 | + username: ${{ secrets.SSH_USERNAME }} |
45 | 45 | key: ${{ secrets.SSH_PRIVATE_KEY }} |
46 | | - passphrase: ${{ secrets.PASSPHRASE }} |
47 | | - envs: IQPS_DIR |
| 46 | + passphrase: ${{ secrets.SSH_PRIVATE_KEY_PASSPHRASE }} |
| 47 | + envs: PROJECT_DIR |
48 | 48 | script_stop: true |
49 | 49 | script: | |
50 | | - cd "${IQPS_DIR}/backend/" |
| 50 | + cd "${PROJECT_DIR}/backend/" |
51 | 51 | sudo docker compose build |
52 | 52 |
|
53 | 53 | deploy: |
54 | 54 | name: Deploy Stage |
55 | | - needs: [pull, build] |
| 55 | + needs: [push, build] |
56 | 56 | runs-on: ubuntu-latest |
57 | 57 |
|
58 | 58 | steps: |
59 | | - - name: Deploy the latest build |
| 59 | + - name: Deploy the latest build(s) |
60 | 60 | uses: appleboy/ssh-action@master |
61 | 61 | env: |
62 | | - IQPS_DIR: ${{ secrets.IQPS_DIR }} |
| 62 | + PROJECT_DIR: ${{ secrets.PROJECT_DIR }} |
63 | 63 | with: |
64 | | - host: ${{ secrets.HOSTNAME }} |
65 | | - username: ${{ secrets.USERNAME }} |
| 64 | + host: ${{ secrets.SSH_HOSTNAME }} |
| 65 | + username: ${{ secrets.SSH_USERNAME }} |
66 | 66 | key: ${{ secrets.SSH_PRIVATE_KEY }} |
67 | | - passphrase: ${{ secrets.PASSPHRASE }} |
68 | | - envs: IQPS_DIR |
| 67 | + passphrase: ${{ secrets.SSH_PRIVATE_KEY_PASSPHRASE }} |
| 68 | + envs: PROJECT_DIR |
69 | 69 | script_stop: true |
70 | 70 | script: | |
71 | | - cd "${IQPS_DIR}/backend/" |
| 71 | + cd "${PROJECT_DIR}/backend/" |
72 | 72 | sudo docker compose down |
73 | 73 | sudo docker compose up -d |
0 commit comments