-
Notifications
You must be signed in to change notification settings - Fork 126
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test: CI: complete dockers_builder.yml
- Loading branch information
Showing
5 changed files
with
153 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,7 +10,6 @@ env: | |
debian_version: debian11 | ||
|
||
jobs: | ||
|
||
build_navitia_arm64: | ||
runs-on: ubuntu-latest | ||
steps: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,7 +9,6 @@ on: | |
- '*' | ||
|
||
jobs: | ||
|
||
common_variables: | ||
name: Common variables | ||
runs-on: [self-hosted, kraken, sandbox] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,8 +8,9 @@ on: | |
- '*' | ||
|
||
env: | ||
front_debian8_components: 'tyr-web instances-configurator' | ||
backend_debian8_components: 'kraken tyr-beat tyr-worker mock-kraken eitri' | ||
front_components: 'tyr-web instances-configurator' | ||
backend_components: 'kraken tyr-beat tyr-worker mock-kraken eitri' | ||
backend_core_components: 'jormungandr kraken tyr-beat tyr-worker' | ||
|
||
SBX_ECR_REGISTRY_BACKEND: "110444322584.dkr.ecr.eu-west-1.amazonaws.com" | ||
SBX_ECR_REGISTRY_FRONT: "051314639660.dkr.ecr.eu-west-1.amazonaws.com" | ||
|
@@ -24,38 +25,34 @@ jobs: | |
steps: | ||
- name: force chown to avoid errors | ||
run: sudo chown -R $USER:$USER . | ||
|
||
- name: Generate github private access token | ||
id: ci-core-app-token | ||
uses: getsentry/[email protected] | ||
with: | ||
app_id: ${{ secrets.CI_CORE_APP_ID }} | ||
private_key: ${{ secrets.CI_CORE_APP_PEM }} | ||
|
||
- name: Checkout navitia | ||
id: checkout_navitia | ||
uses: actions/checkout@v3 | ||
with: | ||
token: ${{ steps.ci-core-app-token.outputs.token }} | ||
# we need entire history for tags | ||
fetch-depth: 0 | ||
|
||
- name: Choose navitia tag | ||
id: choose_navitia_tag | ||
run: | | ||
version=$(git describe --tags) | ||
echo "navitia_tag=$version" >> $GITHUB_OUTPUT | ||
- name: failure notification | ||
if: failure() | ||
run: | | ||
sudo apt update && sudo apt install -y httpie | ||
echo '{"text":":warning: Github Actions: workflow dockers_builder common_variables failed !"}' | http --json POST ${{secrets.SLACK_NAVITIA_TEAM_URL}} | ||
debian11_images: | ||
debian11_back_images: | ||
runs-on: [self-hosted, corefront, sandbox] | ||
name: Build debian11 images | ||
name: Build debian11 backend images | ||
needs: common_variables | ||
steps: | ||
- name: force chown to avoid errors | ||
|
@@ -84,35 +81,49 @@ jobs: | |
with: | ||
# 162230498103 : shared | ||
# 051314639660 : corefront sbx | ||
registries: "162230498103,051314639660" | ||
# 110444322584 : kraken sbx | ||
registries: "162230498103,110444322584,051314639660" | ||
|
||
- name: Create builder docker | ||
- name: Create master&builder docker | ||
run: | | ||
docker build -f docker/debian11/Dockerfile-master -t navitia/master_debian11 . | ||
docker build -f docker/debian11/Dockerfile-builder -t navitia/builder_debian11 . | ||
- name: Build navitia | ||
- name: Build packages in master docker | ||
run: | | ||
docker run -v `pwd`:/navitia/navitia/ navitia/builder_debian11 | ||
- name: Create navitia images | ||
run: | | ||
echo "********* Building Jormungandr ***************" | ||
docker build -t navitia/jormungandr_debian11 -f docker/debian11/Dockerfile-jormungandr . | ||
run: | | ||
for component in ${{env.backend_core_components}}; do | ||
echo "********* Building $component ***************" | ||
docker build -t navitia/$component --build-arg GITHUB_TOKEN=${{ steps.ci-core-app-token.outputs.token }} -f docker/debian11/Dockerfile-${component} . | ||
done | ||
- name: Push jormun dev image on SBX ECR | ||
- name: Push dev images on SBX ECR | ||
if: github.ref == 'refs/heads/dev' | ||
run: | | ||
jormun_tag=${SBX_ECR_REGISTRY_FRONT}/jormungandr:no_config_dev | ||
docker tag navitia/jormungandr_debian11 ${jormun_tag} | ||
docker push ${jormun_tag} | ||
- name: Push jormun release image on SBX ECR | ||
- name: Push release images on PRD ECR | ||
if: startsWith(github.ref, 'refs/tags/') | ||
run: | | ||
jormun_tag=${SBX_ECR_REGISTRY_FRONT}/jormungandr:no_config_${{ needs.common_variables.outputs.RELEASE_TAG }} | ||
docker tag navitia/jormungandr_debian11 ${jormun_tag} | ||
docker push ${jormun_tag} | ||
# Kraken | ||
kraken_tag=${PRD_ECR_REGISTRY}/navitia-debian11-kraken-kraken:${{ needs.common_variables.outputs.RELEASE_TAG }} | ||
docker tag navitia/kraken ${kraken_tag} | ||
docker push ${kraken_tag} | ||
# Tyr-beat | ||
tyr_beat_tag=${PRD_ECR_REGISTRY}/navitia-debian11-tyr-tyrbeat:${{ needs.common_variables.outputs.RELEASE_TAG }} | ||
docker tag navitia/tyr-beat ${tyr_beat_tag} | ||
docker push ${tyr_beat_tag} | ||
# Tyr-worker | ||
tyr_worker_tag=${PRD_ECR_REGISTRY}/navitia-debian11-tyr-tyrworker:${{ needs.common_variables.outputs.RELEASE_TAG }} | ||
docker tag navitia/tyr-worker ${tyr_worker_tag} | ||
docker push ${tyr_worker_tag} | ||
- name: failure notification | ||
if: failure() | ||
|
@@ -127,6 +138,84 @@ jobs: | |
rm -rf ./* | ||
rm -rf ./.??* | ||
debian11_front_images: | ||
runs-on: [self-hosted, corefront, sandbox] | ||
name: Build debian11 front images | ||
needs: common_variables | ||
steps: | ||
- name: force chown to avoid errors | ||
run: sudo chown -R $USER:$USER . | ||
|
||
- name: Git config | ||
run: git config --global --add safe.directory /__w/navitia/navitia | ||
|
||
- name: Generate github private access token | ||
id: ci-core-app-token | ||
uses: getsentry/[email protected] | ||
with: | ||
app_id: ${{ secrets.CI_CORE_APP_ID }} | ||
private_key: ${{ secrets.CI_CORE_APP_PEM }} | ||
|
||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
submodules: recursive | ||
token: ${{ steps.ci-core-app-token.outputs.token }} | ||
|
||
- name: Login to Amazon ECR | ||
uses: aws-actions/amazon-ecr-login@v1 | ||
env: | ||
AWS_REGION: eu-west-1 | ||
with: | ||
# 162230498103 : shared | ||
# 051314639660 : corefront sbx | ||
# 110444322584 : kraken sbx | ||
registries: "162230498103,110444322584,051314639660" | ||
|
||
- name: Create master&builder docker | ||
run: | | ||
docker build -f docker/debian11/Dockerfile-master -t navitia/master_debian11 . | ||
docker build -f docker/debian11/Dockerfile-builder -t navitia/builder_debian11 . | ||
- name: Build packages in master docker | ||
run: | | ||
docker run -v `pwd`:/navitia/navitia/ navitia/builder_debian11 | ||
- name: Create navitia images | ||
run: | | ||
echo "********* Building Tyr Web ***************" | ||
docker build -t navitia/$component --build-arg GITHUB_TOKEN=${{ steps.ci-core-app-token.outputs.token }} -f docker/debian11/Dockerfile-tyr-web . | ||
- name: Push dev images on SBX ECR | ||
if: github.ref == 'refs/heads/dev' | ||
run: | | ||
component_tag=${SBX_ECR_REGISTRY_FRONT}/tyr-web:dev | ||
docker tag navitia/tyr-web${component_tag} | ||
docker push ${component_tag} | ||
- name: Push release images on PRD ECR | ||
if: startsWith(github.ref, 'refs/tags/') | ||
run: | | ||
# Tyr-web | ||
tyr_web_tag=${PRD_ECR_REGISTRY}/navitia-tyr-web-tyr-web:${{ needs.common_variables.outputs.RELEASE_TAG }} | ||
docker tag navitia/tyr-web ${tyr_web_tag} | ||
docker push ${tyr_web_tag} | ||
- name: failure notification | ||
if: failure() | ||
run: | | ||
echo '{"text":":warning: Github Actions: workflow dockers_builder debian11_images failed !"}' | http --json POST ${{secrets.SLACK_NAVITIA_TEAM_URL}} | ||
- name: clean up workspace | ||
if: ${{ always() }} | ||
run: | | ||
# some files are created by a docker container | ||
sudo chown -R $USER:$USER . | ||
rm -rf ./* | ||
rm -rf ./.??* | ||
debian8_back_images: | ||
runs-on: [self-hosted, kraken, sandbox] | ||
name: Build debian8 back images | ||
|
@@ -198,15 +287,15 @@ jobs: | |
|
||
- name: Create navitia images | ||
run: | | ||
for component in ${{env.backend_debian8_components}}; do | ||
for component in ${{env.backend_components}}; do | ||
echo "********* Building $component ***************" | ||
docker build -t navitia/$component --build-arg GITHUB_TOKEN=${{ steps.ci-core-app-token.outputs.token }} -f docker/debian8/Dockerfile-${component} . | ||
done | ||
- name: Push dev images on SBX ECR | ||
if: github.ref == 'refs/heads/dev' | ||
run: | | ||
for component in ${{env.backend_debian8_components}}; do | ||
for component in ${{env.backend_components}}; do | ||
component_tag=${SBX_ECR_REGISTRY_BACKEND}/${component}:dev | ||
docker tag navitia/$component ${component_tag} | ||
docker push ${component_tag} | ||
|
@@ -288,15 +377,15 @@ jobs: | |
|
||
- name: Create navitia images | ||
run: | | ||
for component in ${{env.front_debian8_components}}; do | ||
for component in ${{env.front_components}}; do | ||
echo "********* Building $component ***************" | ||
docker build -t navitia/$component -f docker/debian8/Dockerfile-${component} . | ||
done | ||
- name: Push dev images on SBX ECR | ||
if: github.ref == 'refs/heads/dev' | ||
run: | | ||
for component in ${{env.front_debian8_components}}; do | ||
for component in ${{env.front_components}}; do | ||
component_tag=${SBX_ECR_REGISTRY_FRONT}/${component}:dev | ||
docker tag navitia/$component ${component_tag} | ||
docker push ${component_tag} | ||
|
@@ -368,7 +457,6 @@ jobs: | |
name: Run artemis Dispatch (Dev) | ||
if: github.ref == 'refs/heads/dev' | ||
steps: | ||
|
||
- name: Generate github private access token | ||
id: ci-core-app-token | ||
uses: getsentry/[email protected] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
FROM 162230498103.dkr.ecr.eu-west-1.amazonaws.com/mutable-debian11_dev:latest | ||
|
||
RUN echo "deb http://archive.debian.org/debian/ bullseye main" > /etc/apt/sources.list.d/archive.list | ||
|
||
# update package list from providers | ||
RUN apt-get update --force-yes --fix-missing || exit 0 | ||
|
||
# install postgresql-client for tyr-beat | ||
# netcat for kraken | ||
# curl for jormun | ||
RUN apt-get install -y --force-yes ca-certificates \ | ||
postgresql-client \ | ||
netcat \ | ||
dh-python \ | ||
curl | ||
|
||
COPY docker/ca-certificates/*.crt /usr/local/share/ca-certificates/ | ||
RUN update-ca-certificates | ||
|
||
# install a more recent version of CMake | ||
RUN apt-get remove --yes cmake \ | ||
&& cd /tmp \ | ||
&& wget https://cmake.org/files/v3.18/cmake-3.18.6-Linux-x86_64.tar.gz \ | ||
&& tar xf cmake-3.18.6-Linux-x86_64.tar.gz --strip-components=1 --directory=/usr/local \ | ||
&& rm -f cmake-3.18.6-Linux-x86_64.tar.gz \ | ||
&& cd - | ||
|
||
# Python 'requests' package handle its own CA certificate list | ||
# Let's force it to use the OS's list | ||
ENV REQUESTS_CA_BUNDLE /etc/ssl/certs/ca-certificates.crt | ||
|
||
# install rustup | ||
ENV RUSTUP_HOME=/usr/local/rustup \ | ||
CARGO_HOME=/usr/local/cargo | ||
|
||
ENV PATH=/usr/local/cargo/bin:${PATH} | ||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile minimal \ | ||
&& chmod -R a+wrX ${RUSTUP_HOME} ${CARGO_HOME} \ | ||
&& rustup --version \ | ||
&& cargo --version \ | ||
&& rustc --version |