diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a34dd293698e19b150ac2f9c02759070f5e64742..3e294ed4ba728a5c13ce6b9f1ed05e7ae83479fa 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,7 +13,7 @@ variables: - fp-timing script: # prepare - - . build/opam-ci.sh coq "$COQ_VERSION" coq-mathcomp-ssreflect "$SSR_VERSION" + - . build/opam-ci.sh coq $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' @@ -21,7 +21,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: @@ -41,14 +41,12 @@ opam: 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" + OPAM_PINS: "coq version 8.6.1 coq-mathcomp-ssreflect version 1.6.1" VALIDATE: "1" artifacts: paths: 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