Skip to content

Commit fee7f47

Browse files
committed
CI
1 parent 2c14454 commit fee7f47

File tree

1 file changed

+153
-12
lines changed

1 file changed

+153
-12
lines changed

.github/workflows/dockers_builder.yml

+153-12
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ on:
88
- '*'
99

1010
env:
11-
1211
front_debian8_components: 'tyr-web instances-configurator'
1312
backend_debian8_components: 'kraken tyr-beat tyr-worker mock-kraken eitri'
1413

@@ -17,7 +16,6 @@ env:
1716
PRD_ECR_REGISTRY: "162230498103.dkr.ecr.eu-west-1.amazonaws.com"
1817

1918
jobs:
20-
2119
common_variables:
2220
name: Common variables
2321
runs-on: [self-hosted, corefront, sandbox]
@@ -55,9 +53,128 @@ jobs:
5553
echo '{"text":":warning: Github Actions: workflow dockers_builder common_variables failed !"}' | http --json POST ${{secrets.SLACK_NAVITIA_TEAM_URL}}
5654
5755
58-
debian11_images:
56+
debian11_back_images:
57+
runs-on: [self-hosted, kraken, sandbox]
58+
name: Build debian11 back images
59+
needs: common_variables
60+
env:
61+
backend_debian11_components: 'kraken tyr-beat tyr-worker mock-kraken eitri'
62+
steps:
63+
- name: force chown to avoid errors
64+
run: sudo chown -R $USER:$USER .
65+
66+
- name: Git config
67+
run: git config --global --add safe.directory /__w/navitia/navitia
68+
69+
- name: Generate github private access token
70+
id: ci-core-app-token
71+
uses: getsentry/[email protected]
72+
with:
73+
app_id: ${{ secrets.CI_CORE_APP_ID }}
74+
private_key: ${{ secrets.CI_CORE_APP_PEM }}
75+
76+
- name: Checkout
77+
uses: actions/checkout@v3
78+
with:
79+
submodules: recursive
80+
token: ${{ steps.ci-core-app-token.outputs.token }}
81+
82+
- name: Download cosmogony2cities package
83+
uses: dsaltares/fetch-gh-release-asset@master
84+
with:
85+
repo: 'hove-io/cosmogony2cities'
86+
version: 'tags/v0.1.1'
87+
file: 'cosmogony2cities-debian11.deb'
88+
target: 'cosmogony2cities_.deb'
89+
token: ${{ steps.ci-core-app-token.outputs.token }}
90+
91+
- name: Download mimirsbrunn package
92+
uses: dsaltares/fetch-gh-release-asset@master
93+
with:
94+
repo: 'hove-io/mimirsbrunn'
95+
version: 'tags/v3.1.0'
96+
file: 'mimirsbrunn7_bullseye-3.1.0.deb'
97+
target: 'mimirsbrunn7_bullseye-.deb'
98+
token: ${{ steps.ci-core-app-token.outputs.token }}
99+
100+
- name: Download mimir-config package
101+
uses: dsaltares/fetch-gh-release-asset@master
102+
with:
103+
repo: 'hove-io/mimirsbrunn-config'
104+
version: 'tags/v1.0.0'
105+
file: 'mimirsbrunn-config-2.9.0.deb'
106+
target: 'mimirsbrunn-config-.deb'
107+
token: ${{ steps.ci-core-app-token.outputs.token }}
108+
109+
- name: Login to Amazon ECR
110+
uses: aws-actions/amazon-ecr-login@v1
111+
env:
112+
AWS_REGION: eu-west-1
113+
with:
114+
# 162230498103 : shared
115+
# 110444322584 : kraken sbx
116+
# 051314639660: corefront sbx
117+
registries: "162230498103,110444322584,051314639660"
118+
119+
- name: Create master and builder docker image
120+
run: |
121+
docker build -f docker/debian11/Dockerfile-master -t navitia/master_debian11 .
122+
docker build -f docker/debian11/Dockerfile-builder-kraken -t navitia/builder_debian11 .
123+
124+
- name: Build packages in master docker
125+
run: docker run -v `pwd`:/build/navitia/ navitia/builder
126+
127+
- name: Create navitia images
128+
run: |
129+
for component in ${{env.backend_debian11_components}}; do
130+
echo "********* Building $component ***************"
131+
docker build -t navitia/$component --build-arg GITHUB_TOKEN=${{ steps.ci-core-app-token.outputs.token }} -f docker/debian8/Dockerfile-${component} .
132+
done
133+
134+
- name: Push dev images on SBX ECR
135+
if: github.ref == 'refs/heads/dev'
136+
run: |
137+
for component in ${{env.backend_debian11_components}}; do
138+
component_tag=${SBX_ECR_REGISTRY_BACKEND}/${component}:dev
139+
docker tag navitia/$component ${component_tag}
140+
docker push ${component_tag}
141+
done
142+
143+
- name: Push release images on PRD ECR
144+
if: startsWith(github.ref, 'refs/tags/')
145+
run: |
146+
# Kraken
147+
kraken_tag=${PRD_ECR_REGISTRY}/navitia-kraken-kraken:${{ needs.common_variables.outputs.RELEASE_TAG }}
148+
docker tag navitia/kraken ${kraken_tag}
149+
docker push ${kraken_tag}
150+
151+
# Tyr-beat
152+
tyr_beat_tag=${PRD_ECR_REGISTRY}/navitia-tyr-tyrbeat:${{ needs.common_variables.outputs.RELEASE_TAG }}
153+
docker tag navitia/tyr-beat ${tyr_beat_tag}
154+
docker push ${tyr_beat_tag}
155+
156+
# Tyr-worker
157+
tyr_worker_tag=${PRD_ECR_REGISTRY}/navitia-tyr-tyrworker:${{ needs.common_variables.outputs.RELEASE_TAG }}
158+
docker tag navitia/tyr-worker ${tyr_worker_tag}
159+
docker push ${tyr_worker_tag}
160+
161+
- name: failure notification
162+
if: failure()
163+
run: |
164+
sudo apt update && sudo apt install -y httpie
165+
echo '{"text":":warning: Github Actions: workflow dockers_builder debian8_images failed !"}' | http --json POST ${{secrets.SLACK_NAVITIA_TEAM_URL}}
166+
167+
- name: clean up workspace
168+
if: ${{ always() }}
169+
run: |
170+
# some files are created by a docker container
171+
sudo chown -R $USER:$USER .
172+
rm -rf ./*
173+
rm -rf ./.??*
174+
175+
debian11_front_images:
59176
runs-on: [self-hosted, corefront, sandbox]
60-
name: Build debian11 images
177+
name: Build debian11 images ()
61178
needs: common_variables
62179
steps:
63180
- name: force chown to avoid errors
@@ -96,25 +213,52 @@ jobs:
96213
run: |
97214
docker run -v `pwd`:/navitia/navitia/ navitia/builder_debian11
98215
99-
- name: Create navitia images
216+
- name: Create docker image Jormungandr
100217
run: |
101218
echo "********* Building Jormungandr ***************"
102219
docker build -t navitia/jormungandr_debian11 -f docker/debian11/Dockerfile-jormungandr .
103220
104-
- name: Push jormun dev image on SBX ECR
221+
- name: Create images for Tyr-web
222+
run: docker build -t navitia/tyr-web -f docker/debian11/Dockerfile-tyr-web .
223+
224+
- name: Create images for Instance configurator
225+
run: docker build -t navitia/instances-configurator -f docker/debian11/Dockerfile-instances-configurator .
226+
227+
- name: Push Jormungandr dev image on SBX ECR
105228
if: github.ref == 'refs/heads/dev'
106229
run: |
107230
jormun_tag=${SBX_ECR_REGISTRY_FRONT}/jormungandr:no_config_dev
108231
docker tag navitia/jormungandr_debian11 ${jormun_tag}
109232
docker push ${jormun_tag}
110233
111-
- name: Push jormun release image on SBX ECR
234+
- name: Push Jormungandr release image on SBX ECR
112235
if: startsWith(github.ref, 'refs/tags/')
113236
run: |
114237
jormun_tag=${SBX_ECR_REGISTRY_FRONT}/jormungandr:no_config_${{ needs.common_variables.outputs.RELEASE_TAG }}
115238
docker tag navitia/jormungandr_debian11 ${jormun_tag}
116239
docker push ${jormun_tag}
117240
241+
- name: Push Tyr-Web dev image on SBX ECR
242+
if: github.ref == 'refs/heads/dev'
243+
run: |
244+
component_tag=${SBX_ECR_REGISTRY_FRONT}/tyr-web:dev
245+
docker tag navitia/tyr-web ${component_tag}
246+
docker push ${component_tag}
247+
248+
- name: Push Instances configurator dev image on SBX ECR
249+
if: github.ref == 'refs/heads/dev'
250+
run: |
251+
component_tag=${SBX_ECR_REGISTRY_FRONT}/instances-configurator:dev
252+
docker tag navitia/instances-configurator ${component_tag}
253+
docker push ${component_tag}
254+
255+
- name: Push Try-web release image on PRD ECR
256+
if: startsWith(github.ref, 'refs/tags/')
257+
run: |
258+
# Tyr-web
259+
tyr_web_tag=${PRD_ECR_REGISTRY}/navitia-tyr-web-tyr-web:${{ needs.common_variables.outputs.RELEASE_TAG }}
260+
docker tag navitia/tyr-web ${tyr_web_tag}
261+
docker push ${tyr_web_tag}
118262
119263
- name: failure notification
120264
if: failure()
@@ -232,9 +376,6 @@ jobs:
232376
docker tag navitia/tyr-worker ${tyr_worker_tag}
233377
docker push ${tyr_worker_tag}
234378
235-
236-
237-
238379
- name: failure notification
239380
if: failure()
240381
run: |
@@ -273,14 +414,14 @@ jobs:
273414
submodules: recursive
274415
token: ${{ steps.ci-core-app-token.outputs.token }}
275416

276-
277417
- name: Login to Amazon ECR
278418
uses: aws-actions/amazon-ecr-login@v1
279419
env:
280420
AWS_REGION: eu-west-1
281421
with:
282422
# 162230498103 : shared
283423
# 051314639660 : corefront sbx
424+
# 110444322584: kraken sbx
284425
registries: "162230498103,110444322584,051314639660"
285426

286427
- name: Create master docker
@@ -335,7 +476,7 @@ jobs:
335476
publish_aws:
336477
runs-on: [self-hosted, corefront, sandbox]
337478
name: Aws Dispatch (Dev)
338-
needs: [debian8_front_images, debian8_back_images, debian11_images, common_variables]
479+
needs: [debian8_front_images, debian8_back_images, debian11_front_images, debian11_back_images, common_variables]
339480
steps:
340481

341482
- name: Generate token for aws images

0 commit comments

Comments
 (0)