-
Notifications
You must be signed in to change notification settings - Fork 0
183 lines (153 loc) · 6 KB
/
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
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
name: CD
concurrency: production
on:
push:
branches: [master]
jobs:
backend:
runs-on: ubuntu-20.04
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup Docker Registry
run: |
echo "${{ secrets.REGISTRY_IP }} registry.local" | sudo tee -a /etc/hosts
echo "${{ secrets.REGISTRY_CRT }}" > ~/registry.crt
echo "${{ secrets.REGISTRY_KEY }}" > ~/registry.key
sudo cp ~/registry.* /usr/local/share/ca-certificates/
sudo update-ca-certificates
sudo systemctl restart docker
- name: Build Docker Image
run: |
make build-backend tag_suffix=${{ github.sha }}
- name: Install OpenVPN
run: |
sudo apt-get update
sudo apt-get --assume-yes --no-install-recommends install openvpn
- name: Setup VPN config
run: |
echo "${{ secrets.CA_CRT }}" > ca.crt
echo "${{ secrets.CLIENT_CRT }}" > client.crt
echo "${{ secrets.CLIENT_KEY }}" > client.key
echo "${{ secrets.SECRET_TEXT }}" > secret.txt
echo "${{ secrets.VPN_OVPN }}" > vpn.ovpn
- name: Connect VPN
run: sudo openvpn --config vpn.ovpn --daemon
- name: Wait for a VPN connection
timeout-minutes: 1
run: until ping -c1 192.168.0.10; do sleep 2; done
- name: Push Docker Image
timeout-minutes: 60
run: |
make push-backend tag_suffix=${{ github.sha }}
- name: Kill VPN connection
if: always()
run: |
sudo killall openvpn
- name: Update Kubernetes Manifest
run: |
git config --global user.name ${{ secrets.GIT_COMMIT_USER }}
git config --global user.email ${{ secrets.GIT_COMMIT_EMAIL }}
git clone https://${{ secrets.GIT_REPO_USER }}:${{ secrets.GIT_TOKEN }}@github.com/${{ secrets.GIT_REPO_USER }}/k8s
cd k8s/manifests/price-monitoring
make apply-backend tag_suffix=${{ github.sha }}
make commit
make push
backend-playwright:
runs-on: ubuntu-20.04
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup Docker Registry
run: |
echo "${{ secrets.REGISTRY_IP }} registry.local" | sudo tee -a /etc/hosts
echo "${{ secrets.REGISTRY_CRT }}" > ~/registry.crt
echo "${{ secrets.REGISTRY_KEY }}" > ~/registry.key
sudo cp ~/registry.* /usr/local/share/ca-certificates/
sudo update-ca-certificates
sudo systemctl restart docker
- name: Build Docker Image
run: |
make build-backend-playwright tag_suffix=${{ github.sha }}
- name: Install OpenVPN
run: |
sudo apt-get update
sudo apt-get --assume-yes --no-install-recommends install openvpn
- name: Setup VPN config
run: |
echo "${{ secrets.CA_CRT }}" > ca.crt
echo "${{ secrets.CLIENT_CRT }}" > client.crt
echo "${{ secrets.CLIENT_KEY }}" > client.key
echo "${{ secrets.SECRET_TEXT }}" > secret.txt
echo "${{ secrets.VPN_OVPN }}" > vpn.ovpn
- name: Connect VPN
run: sudo openvpn --config vpn.ovpn --daemon
- name: Wait for a VPN connection
timeout-minutes: 1
run: until ping -c1 192.168.0.10; do sleep 2; done
- name: Push Docker Image
timeout-minutes: 60
run: |
make push-backend-playwright tag_suffix=${{ github.sha }}
- name: Kill VPN connection
if: always()
run: |
sudo killall openvpn
- name: Update Kubernetes Manifest
run: |
git config --global user.name ${{ secrets.GIT_COMMIT_USER }}
git config --global user.email ${{ secrets.GIT_COMMIT_EMAIL }}
git clone https://${{ secrets.GIT_REPO_USER }}:${{ secrets.GIT_TOKEN }}@github.com/${{ secrets.GIT_REPO_USER }}/k8s
cd k8s/manifests/price-monitoring
make apply-backend-playwright tag_suffix=${{ github.sha }}
make commit
make push
frontend:
runs-on: ubuntu-20.04
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Setup Docker Registry
run: |
echo "${{ secrets.REGISTRY_IP }} registry.local" | sudo tee -a /etc/hosts
echo "${{ secrets.REGISTRY_CRT }}" > ~/registry.crt
echo "${{ secrets.REGISTRY_KEY }}" > ~/registry.key
sudo cp ~/registry.* /usr/local/share/ca-certificates/
sudo update-ca-certificates
sudo systemctl restart docker
- name: Build Docker Image
run: |
make build-frontend tag_suffix=${{ github.sha }}
- name: Install OpenVPN
run: |
sudo apt-get update
sudo apt-get --assume-yes --no-install-recommends install openvpn
- name: Setup VPN config
run: |
echo "${{ secrets.CA_CRT }}" > ca.crt
echo "${{ secrets.CLIENT_CRT }}" > client.crt
echo "${{ secrets.CLIENT_KEY }}" > client.key
echo "${{ secrets.SECRET_TEXT }}" > secret.txt
echo "${{ secrets.VPN_OVPN }}" > vpn.ovpn
- name: Connect VPN
run: sudo openvpn --config vpn.ovpn --daemon
- name: Wait for a VPN connection
timeout-minutes: 1
run: until ping -c1 192.168.0.10; do sleep 2; done
- name: Push Docker Image
timeout-minutes: 60
run: |
make push-frontend tag_suffix=${{ github.sha }}
- name: Kill VPN connection
if: always()
run: |
sudo killall openvpn
- name: Update Kubernetes Manifest
run: |
git config --global user.name ${{ secrets.GIT_COMMIT_USER }}
git config --global user.email ${{ secrets.GIT_COMMIT_EMAIL }}
git clone https://${{ secrets.GIT_REPO_USER }}:${{ secrets.GIT_TOKEN }}@github.com/${{ secrets.GIT_REPO_USER }}/k8s
cd k8s/manifests/price-monitoring
make apply-frontend tag_suffix=${{ github.sha }}
make commit
make push