diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 27b7707febf3fdebc73cb2e79ac55e50dae1a261..28e8e1605e256cf0c6776675734ca7c4500454c3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,7 +5,7 @@ iris-coq8.6: - coq script: # prepare - - . build/opam-ci.sh 'coq 8.6' 'coq-mathcomp-ssreflect 1.6.1' + - . build/opam-ci.sh coq 8.6 coq-mathcomp-ssreflect 1.6.1 # build - 'time make -j8' cache: diff --git a/build/opam-ci.sh b/build/opam-ci.sh index 9a10038de124e1bf687660af2a26bb6a44868a37..c4189bab6cf3199a00526ea958918c909cfd23d5 100755 --- a/build/opam-ci.sh +++ b/build/opam-ci.sh @@ -17,10 +17,16 @@ opam update # Install fixed versions of some dependencies echo -for PIN in "${@}" -do - echo "Applying pin: $PIN" - opam pin add $PIN -k version -y +while (( "$#" )); do # while there are arguments left + PACKAGE="$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" + else + echo "[opam-ci] Pinning $PACKAGE to $VERSION" + opam pin add "$PACKAGE" "$VERSION" -k version -y + fi done # Install build-dependencies diff --git a/build/opam-pins.sh b/build/opam-pins.sh index aebd23ca2589992274146d8c37ebd2eb7489ac31..669cd99b833df5259808f3b8f3fae1f96f466271 100755 --- a/build/opam-pins.sh +++ b/build/opam-pins.sh @@ -11,7 +11,11 @@ while read PACKAGE URL HASH; do # an MPI URL -- try doing recursive pin processing curl -f "$URL/raw/$HASH" 2> /dev/null | "$0" fi - echo "[opam-pins] Applying pin: $PACKAGE -> $URL#$HASH" - opam pin add "$PACKAGE.dev.$HASH" "$URL#$HASH" -k git -y -n + if opam pin list | fgrep "$PACKAGE.dev.$HASH " > /dev/null; then + echo "[opam-pins] $PACKAGE already at commit $HASH" + else + echo "[opam-pins] Applying pin: $PACKAGE -> $URL#$HASH" + opam pin add "$PACKAGE.dev.$HASH" "$URL#$HASH" -k git -y -n + fi echo done