image: ralfjung/opam-ci:opam2

stages:
  - build

variables:
  CPU_CORES: "10"

.only_branches: &only_branches
  only:
  - /^master/@iris/stdpp
  - /^ci/@iris/stdpp

.only_mr: &only_mr
  only:
  - merge_requests

.branches_and_mr: &branches_and_mr
  only:
  - /^master/@iris/stdpp
  - /^ci/@iris/stdpp
  - merge_requests

.template: &template
  <<: *only_branches
  stage: build
  interruptible: true
  tags:
  - fp
  script:
  - git clone https://gitlab.mpi-sws.org/iris/ci.git ci -b opam2
  - ci/buildjob
  cache:
    key: "$CI_JOB_NAME"
    paths:
    - _opam/
  except:
  - triggers
  - schedules
  - api

## Build jobs

build-coq.8.14.dev:
  <<: *template
  variables:
    OPAM_PINS: "coq version 8.14.dev"
    MANGLE_NAMES: "1"
    CI_COQCHK: "1"
    DENY_WARNINGS: "1"

build-coq.8.13.2:
  <<: *template
  interruptible: false
  variables:
    OPAM_PINS: "coq version 8.13.2"
    MANGLE_NAMES: "1"
    DENY_WARNINGS: "1"
    OPAM_PKG: "1"
    DOC_DIR: "coqdoc@center.mpi-sws.org:stdpp"
  tags:
  - fp-timing

# Separate MR job that does not run on fp-timing.
build-coq.8.13.2-mr:
  <<: *template
  <<: *only_mr
  variables:
    OPAM_PINS: "coq version 8.13.2"
    MANGLE_NAMES: "1"
    DENY_WARNINGS: "1"

build-coq.8.12.2:
  <<: *template
  variables:
    OPAM_PINS: "coq version 8.12.2"
    DENY_WARNINGS: "1"

build-coq.8.11.2:
  <<: *template
  variables:
    OPAM_PINS: "coq version 8.11.2"

build-coq.8.10.2:
  <<: *template
  <<: *branches_and_mr
  variables:
    OPAM_PINS: "coq version 8.10.2"