diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 82d073631e7e237b527f8d32d23b98baad5fa3c5..5a0d51ec478f4831385d53fd5e4d936f7fe4bcf6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,7 +8,7 @@ variables: - fp-timing script: # prepare - - . build/opam-ci.sh coq "$COQ_VERSION" coq-mathcomp-ssreflect "$SSR_VERSION" + - . build/opam-ci.sh $OPAM_PINS - env | egrep '^(CI_BUILD_REF|CI_RUNNER)' > build-env.txt # build - 'time make -k -j$CPU_CORES TIMED=y 2>&1 | tee build-log.txt' @@ -16,7 +16,7 @@ variables: - 'cat build-log.txt | egrep "[a-zA-Z0-9_/-]+ \((real|user): [0-9]" | tee build-time.txt' - 'if test -n "$VALIDATE" && (( RANDOM % 10 == 0 )); then make validate; fi' cache: - key: "coq.$COQ_VERSION-ssr.$SSR_VERSION" + key: "$CI_JOB_NAME" paths: - opamroot/ only: @@ -26,15 +26,13 @@ variables: build-coq8.7: <<: *template variables: - COQ_VERSION: "8.7.dev" - SSR_VERSION: "dev" + OPAM_PINS: "coq version 8.7.dev coq-mathcomp-ssreflect version dev" build-coq8.6.1: <<: *template variables: - COQ_VERSION: "8.6.1" - SSR_VERSION: "1.6.1" - # VALIDATE: "1" # coqchk on lambdaRust is currently broken + OPAM_PINS: "coq version 8.6.1 coq-mathcomp-ssreflect version 1.6.1" +# VALIDATE: "1" # coqchk on lambdaRust is currently broken, see Coq bug #5747 artifacts: paths: - build-time.txt diff --git a/build/opam-ci.sh b/build/opam-ci.sh index b5607a1666c3cb3d82fe9c96bec801fdbaa38569..95abf4bc02ea672e670a95fc9364218e324c317f 100755 --- a/build/opam-ci.sh +++ b/build/opam-ci.sh @@ -47,14 +47,16 @@ echo echo while (( "$#" )); do # while there are arguments left PACKAGE="$1" ; shift + KIND="$1" ; shift VERSION="$1" ; shift # Check if the pin is already set - if opam pin list | fgrep "$PACKAGE.$VERSION " > /dev/null; then - echo "[opam-ci] $PACKAGE already pinned to $VERSION" + read -a PIN <<< $(opam pin list | (egrep "^$PACKAGE[. ]")) + if [[ "${PIN[1]}" == "$KIND" && "${PIN[2]}" == "$VERSION" ]]; then + echo "[opam-ci] $PACKAGE already $KIND-pinned to $VERSION" else - echo "[opam-ci] Pinning $PACKAGE to $VERSION" - run_and_print opam pin add -y -k version "$PACKAGE" "$VERSION" + echo "[opam-ci] $KIND-pinning $PACKAGE to $VERSION" + run_and_print opam pin add -y -k "$KIND" "$PACKAGE" "$VERSION" fi done