-
Notifications
You must be signed in to change notification settings - Fork 0
141 lines (120 loc) · 4.52 KB
/
staging.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
name: Staging deployment
on:
push:
branches:
- staging
env:
# Must match k8s deployment name
DEPLOYMENT: open-crawler
DEPLOYMENT_NAMESPACE: open-crawler
DEPLOYMENT_URL: https://open-crawler.dataesr.ovh
MM_NOTIFICATION_CHANNEL: 'bots'
jobs:
unit-test:
name: run unit tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.11
uses: actions/setup-python@v1
with:
python-version: 3.11
- name : Install Packages
run : pip install -r requirements.txt
- name: test
run: python -m unittest
publish-ghcr:
name: Publish docker images to ghcr.io
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Get Tag
id: repository
run: |
IMAGE_ID=ghcr.io/${{ github.repository }}
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
echo "name=${IMAGE_ID}" >> $GITHUB_OUTPUT
- name: Get Tag
id: version
run: echo "tag=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
- name: Log into registry
run: docker login ghcr.io -u ${{ github.actor }} -p ${{ secrets.GITHUB_TOKEN }}
- name: Build client image
run: docker build -f Client.Staging.Dockerfile -t ${{ steps.repository.outputs.name }}-client:${{ steps.version.outputs.tag }} .
- name: Build web api image
run: docker build -f Dockerfile -t ${{ steps.repository.outputs.name }}:${{ steps.version.outputs.tag }} .
- name: Build lighthouse worker image
run: docker build -f Lighthouse.Dockerfile -t ${{ steps.repository.outputs.name }}-lighthouse:${{ steps.version.outputs.tag }} .
- name: Build wappalyzer worker image
run: docker build -f Wappalyzer.Dockerfile -t ${{ steps.repository.outputs.name }}-wappalyzer:${{ steps.version.outputs.tag }} .
- name: Push images
run: |
docker push -a ${{ steps.repository.outputs.name }}
docker push -a ${{ steps.repository.outputs.name }}-lighthouse
docker push -a ${{ steps.repository.outputs.name }}-client
docker push -a ${{ steps.repository.outputs.name }}-wappalyzer
deploy:
name: Update staging deployment
runs-on: ubuntu-latest
needs: publish-ghcr
steps:
- name: Restart oc-api deployment
uses: dataesr/[email protected]
env:
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG_DOAD_STAGING }}
with:
namespace: ${{ env.DEPLOYMENT_NAMESPACE }}
restart: oc-api
- name: Restart carbon-footprint deployment
uses: dataesr/[email protected]
env:
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG_DOAD_STAGING }}
with:
namespace: ${{ env.DEPLOYMENT_NAMESPACE }}
restart: oc-carbon-footprint-worker
- name: Restart oc-lighthouse-worker deployment
uses: dataesr/[email protected]
env:
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG_DOAD_STAGING }}
with:
namespace: ${{ env.DEPLOYMENT_NAMESPACE }}
restart: oc-lighthouse-worker
- name: Restart oc-client deployment
uses: dataesr/[email protected]
env:
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG_DOAD_STAGING }}
with:
namespace: ${{ env.DEPLOYMENT_NAMESPACE }}
restart: oc-client
- name: Restart oc-responsiveness-worker deployment
uses: dataesr/[email protected]
env:
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG_DOAD_STAGING }}
with:
namespace: ${{ env.DEPLOYMENT_NAMESPACE }}
restart: oc-responsiveness-worker
- name: Restart oc-technologies-worker deployment
uses: dataesr/[email protected]
env:
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG_DOAD_STAGING }}
with:
namespace: ${{ env.DEPLOYMENT_NAMESPACE }}
restart: oc-technologies-worker
- name: Restart oc-crawler-worker deployment
uses: dataesr/[email protected]
env:
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG_DOAD_STAGING }}
with:
namespace: ${{ env.DEPLOYMENT_NAMESPACE }}
restart: oc-crawler-worker
notify:
needs: deploy
if: always()
runs-on: ubuntu-latest
steps:
- uses: dataesr/mm-notifier-action@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN}}
mattermost_webhook_url: ${{ secrets.MATTERMOST_WEBHOOK_URL }}
mattermost_channel: ${{ env.MM_NOTIFICATION_CHANNEL}}
deployment_url: ${{ env.DEPLOYMENT_URL }}