workflow: rules: - if: $CI_MERGE_REQUEST_IID - if: $CI_COMMIT_TAG - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH variables: PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" VIRTUAL_ENV: "$CI_PROJECT_DIR/.venv" FF_USE_FASTZIP: "true" stages: - install - quality - test .pip cache template: cache: key: files: - setup.py - requirements.txt paths: - .cache/pip - ${VIRTUAL_ENV} before_script: - export PATH="${VIRTUAL_ENV}:$PATH" requirements: extends: .pip cache template image: python:3.10-alpine stage: install script: - python3 -m venv "${VIRTUAL_ENV}" - pip install -r requirements.txt cache: policy: pull-push interruptible: true linting: extends: .pip cache template image: python:3.10-alpine stage: quality script: - flake8 . cache: policy: pull interruptible: true tests: extends: .pip cache template image: python:3.10-alpine stage: test script: - coverage run --source matrix_alertbot -m pytest --junitxml=report.xml - coverage xml -o coverage.xml cache: policy: pull artifacts: reports: coverage_report: coverage_format: cobertura path: coverage.xml junit: report.xml interruptible: true