Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.98 KiB
Newer Older
################################################################################
### STAGES

Allan Blanchard's avatar
Allan Blanchard committed
stages:
Thibault Martin's avatar
Thibault Martin committed
  - distrib
Thibault Martin's avatar
Thibault Martin committed
  - release

################################################################################
### DEFAULT JOB PARAMETERS

default:
Allan Blanchard's avatar
Allan Blanchard committed
  tags: [nix-v2]
Allan Blanchard's avatar
Allan Blanchard committed

################################################################################
### VARIABLES

variables:
Virgile Prevosto's avatar
Virgile Prevosto committed
  DEFAULT: "master"
  OCAML: "4.14"
################################################################################
### ONLY/EXCEPT TEMPLATES

.build_template: &manual_template
  except:
    refs:
      - schedules
  when: manual

.build_template: &when_schedules
  only:
    refs:
      - schedules

.build_template: &when_release
  only:
    variables:
      - $RELEASE == "yes"

Allan Blanchard's avatar
Allan Blanchard committed
################################################################################
### TESTS

build-and-test:
  stage: tests
  script:
    - ./nix/ci.sh

Thibault Martin's avatar
Thibault Martin committed
################################################################################
### Distrib

check-headers:
Thibault Martin's avatar
Thibault Martin committed
  stage: distrib
  variables:
    CI_MODE: "check-headers"
  script:
    - ./nix/ci.sh

lint:
Thibault Martin's avatar
Thibault Martin committed
  stage: distrib
  variables:
    CI_MODE: "lint"
Virgile Prevosto's avatar
Virgile Prevosto committed
  script:
    - ./nix/ci.sh

################################################################################
### COMPATIBILITY

Thibault Martin's avatar
Thibault Martin committed
.build_template: &opam_template
  tags: [docker]
  image: "ocaml/opam:ubuntu-lts-ocaml-$OCAML"
  stage: compatibility
Thibault Martin's avatar
Thibault Martin committed
  variables:
    CI_MODE: "check-opam"
Thibault Martin's avatar
Thibault Martin committed
    - ./nix/ci.sh

check-opam:
  <<: *opam_template
  <<: *manual_template
Thibault Martin's avatar
Thibault Martin committed

check-opam-nightly:
  <<: *opam_template
  <<: *when_schedules

check-opam-release:
  <<: *opam_template
  <<: *when_release
Thibault Martin's avatar
Thibault Martin committed

################################################################################
### RELEASE

release:
  <<: *manual_template
  <<: *when_release
Thibault Martin's avatar
Thibault Martin committed
  stage: release
  needs:
    - check-opam
Thibault Martin's avatar
Thibault Martin committed
    CI_MODE: "release"
    PLUGIN_FULL_NAME: "MetAcsl"
    REPO: "meta"
    RELEASE_OPT: "--assume-yes"
Thibault Martin's avatar
Thibault Martin committed
    - ls -la
    - ./nix/ci.sh