[jormungandr] Olympic site params manager #4214
Workflow file for this run
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
name: CI | |
on: | |
push: | |
branches: | |
- dev | |
- auto/clang-tidy | |
pull_request: | |
release: | |
types: | |
- created | |
env: | |
REGION: eu-west-1 | |
jobs: | |
credentials: | |
name: Init credentials | |
runs-on: [self-hosted, corefront, sandbox] | |
outputs: | |
aws_token: ${{ steps.ecr_token.outputs.token }} | |
steps: | |
- name: Get ECR Token | |
id: ecr_token | |
run: | | |
echo token=$(aws ecr get-login-password --region $REGION) >> $GITHUB_OUTPUT | |
checks: | |
runs-on: [self-hosted, corefront, sandbox] | |
needs: credentials | |
container: | |
image: 162230498103.dkr.ecr.eu-west-1.amazonaws.com/mutable-debian11_dev:latest | |
credentials: | |
username: AWS | |
password: ${{ needs.credentials.outputs.aws_token }} | |
steps: | |
- name: force chown to avoid errors | |
run: 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 }} | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
token: ${{ steps.ci-core-app-token.outputs.token }} | |
# 'check_submodules.sh' below needs entire history | |
fetch-depth: 0 | |
- name: check submodules | |
run: ./source/scripts/check_submodules.sh | |
precommit: | |
runs-on: [self-hosted, corefront, sandbox] | |
needs: [credentials] | |
container: | |
image: 162230498103.dkr.ecr.eu-west-1.amazonaws.com/mutable-debian11_dev:latest | |
credentials: | |
username: AWS | |
password: ${{ needs.credentials.outputs.aws_token }} | |
steps: | |
- name: force chown to avoid errors | |
run: 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 }} | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
token: ${{ steps.ci-core-app-token.outputs.token }} | |
- name: Config Github global url for ssh cases (add access token) | |
run: | | |
git config --global url."https://x-access-token:${{ steps.ci-core-app-token.outputs.token }}@github.com/hove-io/".insteadOf "[email protected]:hove-io/" | |
- name: install dependencies | |
run: | | |
pip3 install -r requirements_pre-commit.txt --upgrade | |
- name: Build Protobuf | |
run: bash source/scripts/build_protobuf.sh | |
- name: Pre-commit run | |
env: | |
LC_ALL: C.UTF-8 | |
LANG: C.UTF-8 | |
run: | | |
git config --global --add safe.directory /__w/navitia/navitia | |
git config --global --add safe.directory /__w/navitia/navitia/source/chaos-proto | |
pre-commit install --install-hooks | |
pre-commit run --all --show-diff-on-failure | |
build: | |
runs-on: [self-hosted, corefront, sandbox] | |
needs: [credentials] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [{docker_image: mutable-debian8_dev , python_version: python3.6}, {docker_image: mutable-debian11_dev, python_version: python3.9}] | |
container: | |
image: 162230498103.dkr.ecr.eu-west-1.amazonaws.com/${{ matrix.os.docker_image }}:latest | |
credentials: | |
username: AWS | |
password: ${{ needs.credentials.outputs.aws_token }} | |
services: | |
rabbitmq: | |
image: rabbitmq:3-alpine | |
ports: | |
- 5672:5672 | |
redis: | |
image: redis:6-alpine | |
ports: | |
- 6379:6379 | |
steps: | |
- name: force chown to avoid errors | |
run: 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 }} | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
token: ${{ steps.ci-core-app-token.outputs.token }} | |
- name: Restore ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: ${{matrix.os.docker_image}}-ci | |
max-size: 2000M | |
save: ${{ github.event_name == 'push' }} | |
- name: Ensure CMake version is recent enough | |
if: ${{ matrix.os.docker_image == 'mutable-debian8_dev'}} | |
run: | | |
apt remove --yes cmake | |
mkdir local_bin | |
cd local_bin | |
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 | |
echo "`pwd`/cmake-3.18.6-Linux-x86_64/bin" >> $GITHUB_PATH | |
cd .. | |
- name: configure for Release | |
run: mkdir build && cd ./build && cmake -DSTRIP_SYMBOLS=ON ../source | |
- name: run | |
working-directory: ./build | |
run: make -j $(nproc) | |
- name: Tests python3 | |
working-directory: ./build | |
if: ${{ matrix.os.docker_image == 'mutable-debian11_dev'}} | |
run: | | |
virtualenv -p ${{matrix.os.python_version}} navitia_py3 | |
. navitia_py3/bin/activate | |
pip install -r ../source/jormungandr/requirements_dev.txt | |
export JORMUNGANDR_BROKER_URL='amqp://guest:guest@rabbitmq:5672//' | |
export KRAKEN_RABBITMQ_HOST='rabbitmq' | |
ctest --output-on-failure | |
deactivate | |
rm -rf navitia_py3 | |
- name: docker_test python2 | |
working-directory: ./build | |
run: | | |
pip install virtualenv==20.4.7 -U | |
virtualenv -p python2.7 navitia_py2 | |
. navitia_py2/bin/activate | |
pip install -r ../source/tyr/requirements_dev.txt | |
pip install -r ../source/sql/requirements.txt | |
export NAVITIA_CHAOS_DUMP_PATH=$(echo $GITHUB_WORKSPACE/source/tests/chaos/chaos_loading.sql.gz | sed -e 's#__w#/opt/actions-runner/_work#') | |
make docker_test | |
deactivate | |
rm -rf navitia_py2 | |
env: | |
NAVITIA_DOCKER_NETWORK: ${{ job.container.network }} | |
TYR_CELERY_BROKER_URL: 'amqp://guest:guest@rabbitmq:5672//' | |
TYR_REDIS_HOST: 'redis' | |
- name: docker_test python3 | |
working-directory: ./build | |
run: | | |
virtualenv -p ${{matrix.os.python_version}} navitia_py3 | |
. navitia_py3/bin/activate | |
pip install -r ../source/tyr/requirements_dev.txt | |
pip install -r ../source/sql/requirements.txt | |
export NAVITIA_CHAOS_DUMP_PATH=$(echo $GITHUB_WORKSPACE/source/tests/chaos/chaos_loading.sql.gz | sed -e 's#__w#/opt/actions-runner/_work#') | |
make docker_test | |
deactivate | |
rm -rf navitia_py3 | |
env: | |
NAVITIA_DOCKER_NETWORK: ${{ job.container.network }} | |
TYR_CELERY_BROKER_URL: 'amqp://guest:guest@rabbitmq:5672//' | |
TYR_REDIS_HOST: 'redis' |