default: before_script: &poetry_setup - curl -sSL https://install.python-poetry.org | python3 - - export PATH="/root/.local/bin:$PATH" # - poetry config virtualenvs.create false - poetry config virtualenvs.in-project true # for caching - poetry install --no-interaction --no-ansi image: python:3.11 cache: key: "project-${CI_JOB_NAME}" paths: - .cache/pip - .venv stages: - lint - test - build format: stage: lint script: poetry run ruff format --diff *.py tests mypy: stage: lint script: poetry run mypy *.py tests ruff: stage: lint script: poetry run ruff check *.py tests/ shellcheck: image: koalaman/shellcheck-alpine:latest stage: lint before_script: [""] script: shellcheck init.sh pytest: stage: test script: - rm /etc/python3.11/sitecustomize.py # WORKAROUND for coverage picking it up - poetry run pytest -v --junit-xml=pytest.xml artifacts: reports: junit: pytest.xml build: stage: build before_script: [] cache: {} # see https://docs.gitlab.com/ee/ci/docker/using_kaniko.html image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] script: - mkdir -p /kaniko/.docker - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG --snapshotMode=redo only: - master build_dev: stage: build before_script: [] cache: {} # see https://docs.gitlab.com/ee/ci/docker/using_kaniko.html image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] script: - mkdir -p /kaniko/.docker - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:develop --snapshotMode=redo only: - develop