Skip to content
.gitlab-ci.yml 1.54 KiB
Newer Older
variables:
  PIP_CACHE_DIR: "${CI_PROJECT_DIR}/.cache/pip"

cache:
  key: "${CI_JOB_NAME}"
  paths:
    - .venv

stages:
  - lint
  - tests
  - docs

.install-deps-template: &install-deps
  before_script:
Josh Asplund's avatar
Josh Asplund committed
    - export PATH="/var/lib/gitlab-runner/.local/bin:$PATH"
    - pip3 install poetry
    - poetry --version
    - poetry config virtualenvs.in-project true
    - poetry install -vv

.quality-template: &quality
  <<: *install-deps
  image: python:3.7
  stage: lint
Andreas Klöckner's avatar
Andreas Klöckner committed
  tags:
    - python3
Andreas Klöckner's avatar
Andreas Klöckner committed
  except:
    - tags
.test-template: &test
  <<: *install-deps
    - "bash ./.ci/run-tests-for-ci.sh"
  stage: tests
    - python3
    - linux
    - tags
  coverage: "/TOTAL.+ ([0-9]{1,3}%)/"
  variables:
    CODECOV_TOKEN: "895e3bf2-cfd0-45f8-9a14-4b7bd148f76d"

flake8:
  <<: *quality
  script: poetry run flake8 relate course accounts tests

mypy:
  <<: *quality
  script: poetry run mypy relate course

Python 3:
  <<: *test
  image: python:3.6

Python 3 Expensive:
  <<: *test
  image: python:3.6
  variables:
    RL_CI_TEST: expensive

Python 3 CLI Tool:
  <<: *test
    - git clone https://github.com/inducer/relate-sample
    - cd relate-sample
Josh Asplund's avatar
Josh Asplund committed
    - 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