variables: PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" POETRY_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pypoetry" POETRY_VIRTUALENVS_IN_PROJECT: "true" cache: key: files: - .gitlab-ci.yml - poetry.lock prefix: relate paths: - ".cache/pypoetry" - ".cache/pip" - ".venv" stages: - setup - lint - tests - docs .install-deps-template: &install-deps image: python:3.7 before_script: - export PATH="/var/lib/gitlab-runner/.local/bin:$PATH" - pip3 install --upgrade poetry - poetry install .quality-template: &quality <<: *install-deps stage: lint tags: - python3 except: - tags .test-template: &test <<: *install-deps script: - "bash ./.ci/run-tests-for-ci.sh" stage: tests tags: - python3 - linux except: - tags coverage: "/TOTAL.+ ([0-9]{1,3}%)/" variables: CODECOV_TOKEN: "895e3bf2-cfd0-45f8-9a14-4b7bd148f76d" setup: <<: *install-deps stage: setup script: poetry config --list flake8: <<: *quality script: poetry run flake8 relate course accounts tests mypy: <<: *quality script: poetry run mypy relate course Python 3: <<: *test Python 3 Expensive: <<: *test variables: RL_CI_TEST: expensive Python 3 CLI Tool: <<: *test script: - git clone https://github.com/inducer/relate-sample - cd relate-sample - poetry run relate validate . - poetry run relate test-code questions/autograded-python-example.yml - poetry run relate expand-yaml flows/quiz-test.yml > /dev/null Documentation: <<: *install-deps stage: docs variables: RELATE_LOCAL_TEST_SETTINGS: './local_settings_example.py' script: - poetry run bash ./doc/build-docs.sh tags: - python3 only: - master