variables:
  # Using git fetch is faster
  # See https://docs.gitlab.com/ce/user/project/pipelines/settings.html#git-strategy
  GIT_STRATEGY: "fetch"

  # Init submodules
  # See https://docs.gitlab.com/ee/ci/yaml/#git-submodule-strategy
  GIT_SUBMODULE_STRATEGY: "recursive"

  # Use shallow cloning to speed up git clone. This can fail, if retrying an older build on CI
  # and the old commit is not in the shallow history any more.
  # See https://docs.gitlab.com/ee/ci/yaml/#shallow-cloning
  GIT_DEPTH: "50"

  # Run `make` in parallel
  MAKEFLAGS: "-j10"

  # Apply timeout to pytest-based tests
  PYTEST_TIMEOUT: "300"

  # Pipenv cache
  PIPENV_VENV_IN_PROJECT: "true"
  PIPENV_CACHE_DIR: ".cache/"

  # No need for TLS because everything runs on the same machine
  DOCKER_TLS_CERTDIR: ""
stages:
  - environment
  - prebuild
  - build
  - test
  - posttest
  - deploy

before_script:
  - command -v pipenv >/dev/null && pipenv sync --python=/usr/bin/python3

include:
  - ci/environment.yml
  - ci/prebuild.yml
  - ci/build.yml
  - ci/test.yml
  - ci/posttest.yml
  - ci/deploy.yml