10
10
11
11
env :
12
12
REGISTRY : " ghcr.io/zero-plus-x"
13
- BACKEND_IMAGE_NAME : " helpua-backend"
14
- BOT_IMAGE_NAME : " helpua-bot"
13
+ IMAGE_NAME : " helpua-backend"
15
14
16
15
jobs :
17
- build_and_push_backend :
16
+ build_and_push :
18
17
runs-on : ubuntu-latest
19
18
steps :
20
19
- name : Checkout the repo
21
20
uses : actions/checkout@v2
22
21
23
22
- name : Build container image
24
- run : docker build -t $(echo $REGISTRY)/$(echo $BACKEND_IMAGE_NAME ):$(echo $GITHUB_SHA | head -c7) -f packages/backend/Dockerfile .
23
+ run : docker build -t $(echo $REGISTRY)/$(echo $IMAGE_NAME ):$(echo $GITHUB_SHA | head -c7) -f packages/backend/Dockerfile .
25
24
26
25
- name : Login to GitHub Container Registry
27
26
uses : docker/login-action@v1
@@ -31,48 +30,29 @@ jobs:
31
30
password : ${{ secrets.GITHUB_TOKEN }}
32
31
33
32
- name : Push image to GitHub Container Registry
34
- run : docker push $(echo $REGISTRY)/$(echo $BACKEND_IMAGE_NAME):$(echo $GITHUB_SHA | head -c7)
35
-
36
- build_and_push_bot :
37
- runs-on : ubuntu-latest
38
- steps :
39
- - name : Checkout the repo
40
- uses : actions/checkout@v2
41
-
42
- - name : Build container image
43
- run : docker build -t $(echo $REGISTRY)/$(echo $BOT_IMAGE_NAME):$(echo $GITHUB_SHA | head -c7) -f packages/bot/Dockerfile .
44
-
45
- - name : Login to GitHub Container Registry
46
- uses : docker/login-action@v1
47
- with :
48
- registry : ghcr.io
49
- username : ${{ github.actor }}
50
- password : ${{ secrets.GITHUB_TOKEN }}
51
-
52
- - name : Push image to GitHub Container Registry
53
- run : docker push $(echo $REGISTRY)/$(echo $BOT_IMAGE_NAME):$(echo $GITHUB_SHA | head -c7)
33
+ run : docker push $(echo $REGISTRY)/$(echo $IMAGE_NAME):$(echo $GITHUB_SHA | head -c7)
54
34
55
35
migrate_postgresql :
56
36
runs-on : ubuntu-latest
57
- needs : build_and_push_backend
37
+ needs : build_and_push
58
38
steps :
59
39
- name : Migrate the DB
60
40
61
41
with :
62
42
host : ${{ secrets.HOST }}
63
43
username : ${{ secrets.USERNAME }}
64
44
key : ${{ secrets.SSH_KEY }}
65
- envs : BACKEND_IMAGE_NAME ,REGISTRY,GITHUB_SHA
45
+ envs : IMAGE_NAME ,REGISTRY,GITHUB_SHA
66
46
script : |
67
47
echo ${{ secrets.GITHUB_TOKEN }} | docker login -u ${{ github.actor }} --password-stdin ghcr.io
68
48
docker run \
69
49
--env DATABASE_URL=${{ secrets.DATABASE_URL }} \
70
- --name $(echo $BACKEND_IMAGE_NAME )-migrate \
71
- $(echo $REGISTRY)/$(echo $BACKEND_IMAGE_NAME ):$(echo $GITHUB_SHA | head -c7) \
50
+ --name $(echo $IMAGE_NAME )-migrate \
51
+ $(echo $REGISTRY)/$(echo $IMAGE_NAME ):$(echo $GITHUB_SHA | head -c7) \
72
52
pnpm migrate:deploy
73
- docker rm $(echo $BACKEND_IMAGE_NAME )-migrate
53
+ docker rm $(echo $IMAGE_NAME )-migrate
74
54
75
- deploy_backend :
55
+ deploy :
76
56
runs-on : ubuntu-latest
77
57
needs : migrate_postgresql
78
58
@@ -83,50 +63,24 @@ jobs:
83
63
host : ${{ secrets.HOST }}
84
64
username : ${{ secrets.USERNAME }}
85
65
key : ${{ secrets.SSH_KEY }}
86
- envs : BACKEND_IMAGE_NAME,REGISTRY,GITHUB_SHA
87
- script : |
88
- echo ${{ secrets.GITHUB_TOKEN }} | docker login -u ${{ github.actor }} --password-stdin ghcr.io
89
- # Stop running container
90
- docker stop $(echo $BACKEND_IMAGE_NAME)
91
- # Remove old container
92
- docker rm $(echo $BACKEND_IMAGE_NAME)
93
- # Run a new container from a new image
94
- docker run -d \
95
- --env DATABASE_URL=${{ secrets.DATABASE_URL }} \
96
- --network net \
97
- --restart always \
98
- --name $(echo $BACKEND_IMAGE_NAME) \
99
- $(echo $REGISTRY)/$(echo $BACKEND_IMAGE_NAME):$(echo $GITHUB_SHA | head -c7)
100
-
101
- deploy_bot :
102
- runs-on : ubuntu-latest
103
- needs : [build_and_push_bot, deploy_backend]
104
-
105
- steps :
106
- - name : Deploy to Digital Ocean droplet via SSH action
107
-
108
- with :
109
- host : ${{ secrets.HOST }}
110
- username : ${{ secrets.USERNAME }}
111
- key : ${{ secrets.SSH_KEY }}
112
- envs : BOT_IMAGE_NAME,REGISTRY,GITHUB_SHA,BACKEND_IMAGE_NAME
66
+ envs : IMAGE_NAME,REGISTRY,GITHUB_SHA
113
67
script : |
114
68
echo ${{ secrets.GITHUB_TOKEN }} | docker login -u ${{ github.actor }} --password-stdin ghcr.io
115
69
# Stop running container
116
- docker stop $(echo $BOT_IMAGE_NAME )
70
+ docker stop $(echo $IMAGE_NAME )
117
71
# Remove old container
118
- docker rm $(echo $BOT_IMAGE_NAME )
72
+ docker rm $(echo $IMAGE_NAME )
119
73
# Run a new container from a new image
120
74
docker run -d \
121
75
--env TELEGRAM_BOT_TOKEN=${{ secrets.TELEGRAM_BOT_TOKEN }} \
122
- --env BACKEND_HOST=http://$(echo $BACKEND_IMAGE_NAME):3000 \
76
+ --env DATABASE_URL=${{ secrets.DATABASE_URL }} \
123
77
--network net \
124
78
--restart always \
125
- --name $(echo $BOT_IMAGE_NAME ) \
126
- $(echo $REGISTRY)/$(echo $BOT_IMAGE_NAME ):$(echo $GITHUB_SHA | head -c7)
79
+ --name $(echo $IMAGE_NAME ) \
80
+ $(echo $REGISTRY)/$(echo $IMAGE_NAME ):$(echo $GITHUB_SHA | head -c7)
127
81
cleanup :
128
82
runs-on : ubuntu-latest
129
- needs : [deploy_bot, deploy_backend ]
83
+ needs : [deploy ]
130
84
131
85
steps :
132
86
- name : Remove unused images
0 commit comments