diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ef672cef928e516bfebf4b8d14ed493448ef1f7f..49e71fe885bf0d51bcdd156ffa4774e04792357c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,6 +3,8 @@ stages: - tests + - distrib + - compatibility - prepare-release - release @@ -20,14 +22,26 @@ variables: OCAML: "4.14" ################################################################################ -### TESTS +### ONLY/EXCEPT TEMPLATES -check-headers: - stage: prepare-release - variables: - CI_MODE: "check-headers" - script: - - ./nix/ci.sh +.build_template: &manual_template + except: + refs: + - schedules + when: manual + +.build_template: &when_schedules + only: + refs: + - schedules + +.build_template: &when_release + only: + variables: + - $RELEASE == "yes" + +################################################################################ +### TESTS .build_template: &tests_template stage: tests @@ -42,26 +56,51 @@ tests-auto: tests-manual: <<: *tests_template + <<: *manual_template parallel: matrix: - LLVM_VERSION: [ "13", "14", "15", "16", "17" ] - when: manual + +################################################################################ +### DISTRIB + +check-headers: + stage: distrib + variables: + CI_MODE: "check-headers" + script: + - ./nix/ci.sh ################################################################################ ### CHECK OPAM PACKAGE STATUS -check-opam: +.build_template: &opam_template tags: [docker] image: "ocaml/opam:ubuntu-lts-ocaml-$OCAML" - stage: prepare-release + stage: compatibility variables: CI_MODE: "check-opam" EXTRA_PACKAGES: "clang libclang-dev libclang-cpp-dev llvm-dev" script: - ./nix/ci.sh - when: manual + +check-opam: + <<: *opam_template + <<: *manual_template + +check-opam-nightly: + <<: *opam_template + <<: *when_schedules + +check-opam-release: + <<: *opam_template + <<: *when_release + +################################################################################ +### PRE-RELEASE make-manual: + <<: *when_release stage: prepare-release variables: OUT: "manual" @@ -73,6 +112,7 @@ make-manual: - ./nix/ci.sh check-versions: + <<: *when_release stage: prepare-release variables: CI_MODE: "check-versions" @@ -83,12 +123,8 @@ check-versions: ### RELEASE release: + <<: *when_release stage: release - needs: - - check-opam - - make-manual - dependencies: - - make-manual variables: CI_MODE: "release" PLUGIN_FULL_NAME: "Frama-Clang" @@ -99,4 +135,3 @@ release: - ls -la - ls manual - ./nix/ci.sh - when: manual