-
Notifications
You must be signed in to change notification settings - Fork 1
145 lines (125 loc) · 4.25 KB
/
deploy.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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
name: Deploy to Test Cluster
on:
push:
branches:
- main
jobs:
build-push:
name: Build and Push to Registry
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
path: src
- name: Checkout Akvo composite actions
uses: actions/checkout@v4
with:
repository: akvo/composite-actions
token: ${{ secrets.GH_PAT }}
path: composite-actions
ref: 0.0.7
- name: Copy i18n
run: |
cp src/i18n src/frontend/ -R
shell: bash
- name: List files
run: |
ls -la src/frontend/i18n
shell: bash
- name: Prepare Frontend Build
run: |
mv src/frontend/next.config.prod.mjs src/frontend/next.config.mjs
echo 'WEBDOMAIN=${{ secrets.WEBDOMAIN }}' >> src/frontend/.env
echo 'NEXT_AUTH_SECRET_KEY=${{ secrets.NEXT_AUTH_SECRET_KEY }}' >> src/frontend/.env
shell: bash
- name: Node Operations
uses: ./composite-actions/.github/actions/node-operation
with:
node-version: "18"
node-command: "yarn install --no-progress --frozen-lock && yarn build"
- name: Docker Build Nginx
uses: ./composite-actions/.github/actions/docker-build
with:
app-name: "partos-pat"
service-name: "nginx"
dockerfile-location: "nginx"
cluster-name: "test"
- name: Docker Build Frontend
uses: ./composite-actions/.github/actions/docker-build
with:
app-name: "partos-pat"
service-name: "frontend"
dockerfile-location: "frontend"
cluster-name: "test"
- name: Docker Build Backend
uses: ./composite-actions/.github/actions/docker-build
with:
app-name: "partos-pat"
service-name: "backend"
dockerfile-location: "backend/Dockerfile.prod"
cluster-name: "test"
- name: Docker Push Nginx
uses: ./composite-actions/.github/actions/docker-push
with:
app-name: "partos-pat"
service-name: "nginx"
gcloud-sa: ${{ secrets.GCLOUD_SERVICE_ACCOUNT_REGISTRY }}
cluster-name: "test"
- name: Docker Push Frontend
uses: ./composite-actions/.github/actions/docker-push
with:
app-name: "partos-pat"
service-name: "frontend"
gcloud-sa: ${{ secrets.GCLOUD_SERVICE_ACCOUNT_REGISTRY }}
cluster-name: "test"
- name: Docker Push Backend
uses: ./composite-actions/.github/actions/docker-push
with:
app-name: "partos-pat"
service-name: "backend"
gcloud-sa: ${{ secrets.GCLOUD_SERVICE_ACCOUNT_REGISTRY }}
cluster-name: "test"
rollout:
name: Rollout to the server
needs: build-push
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
path: src
- name: Checkout Akvo composite actions
uses: actions/checkout@v4
with:
repository: akvo/composite-actions
token: ${{ secrets.GH_PAT }}
path: composite-actions
ref: 0.0.7
- name: Rollout Nginx
uses: ./composite-actions/.github/actions/k8s-rollout
with:
app-name: "partos-pat"
deployment-name: "nginx-deployment"
container-name: "nginx"
cluster-name: "test"
namespace-name: "partos-pat-namespace"
gcloud-sa: ${{ secrets.GCLOUD_SERVICE_ACCOUNT_K8S }}
- name: Rollout Frontend
uses: ./composite-actions/.github/actions/k8s-rollout
with:
app-name: "partos-pat"
deployment-name: "frontend-deployment"
container-name: "frontend"
cluster-name: "test"
namespace-name: "partos-pat-namespace"
gcloud-sa: ${{ secrets.GCLOUD_SERVICE_ACCOUNT_K8S }}
- name: Rollout Backend
uses: ./composite-actions/.github/actions/k8s-rollout
with:
app-name: "partos-pat"
deployment-name: "backend-deployment"
container-name: "backend"
cluster-name: "test"
namespace-name: "partos-pat-namespace"
gcloud-sa: ${{ secrets.GCLOUD_SERVICE_ACCOUNT_K8S }}