Skip to content
Snippets Groups Projects
.gitlab-ci.yml 5.10 KiB
###################### Global Config ######################

workflow:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
    - if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
      when: never
    - if: '$CI_COMMIT_BRANCH'

stages:
  - build
  - process

###################### Rules and Scripts ##################

.not_in_wip_branches:
  rules:
    - if: ($CI_COMMIT_BRANCH !~ /^wip-.*$/) || ($CI_PIPELINE_SOURCE == "merge_request_event")

.build-common:
  stage: build
  script:
    - opam update -y
    - opam remove -y coq-mathcomp-character coq-mathcomp-field coq-mathcomp-solvable  # Check coq-mathcomp-ssreflect is enough
    - opam pin add -n -y -k path coq-prosa .
    - opam install -y -v -j ${NJOBS} coq-prosa

.preferred-stable-version:
    image: mathcomp/mathcomp:1.14.0-coq-8.15

.build:
  image: mathcomp/mathcomp:${CI_JOB_NAME}
  extends: .build-common

.build-dev:
  image: mathcomp/mathcomp-dev:${CI_JOB_NAME}
  extends: .build-common

.compile:
  stage: build
  extends:
    - .preferred-stable-version
  script:
    - opam update; opam install -y -v -j ${NJOBS} coq-mathcomp-zify
    - ./create_makefile.sh --without-classic
    - make -j ${NJOBS}

.compile-classic:
  stage: build
  extends:
    - .preferred-stable-version
  script:
    - opam update; opam install -y -v -j ${NJOBS} coq-mathcomp-zify
    - ./create_makefile.sh --only-classic
    - make -j ${NJOBS}

.collect-vo-files: 
  # Keep track of all compiled output and the build infrastructure
  artifacts:
    name: prosa-build-files
    paths:
    - Makefile
    - Makefile.conf
    # Ugly hack around https://gitlab.com/gitlab-org/gitlab-runner/issues/2620
    - "*/*.vo"
    - "*/*/*.vo"
    - "*/*/*/*.vo"
    - "*/*/*/*/*.vo"
    - "*/*/*/*/*/*.vo"
    - "*/*/*/*/*/*/*.vo"