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

  # 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: "400"

  # No need for TLS because everything runs on the same machine
  DOCKER_TLS_CERTDIR: ""

  NIX_SHELL: "nix-shell"

stages:
  - environment
  - prebuild
  - build
  - test
  - posttest
  - deploy

default:
  # Cancel jobs when a newer pipeline appears
  interruptible: true

before_script:
  - . /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh || true
  - $NIX_SHELL --run "poetry install --sync"
  - export LEGACY_VERSION=$($NIX_SHELL --run "./tools/version.sh legacy/firmware/version.h")
  - export CORE_VERSION=$($NIX_SHELL --run "./tools/version.sh core/embed/firmware/version.h")

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