diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ba435ebe0cd1321c0dc62865c73d15332f8c162f..e9ab66c17e56855f2f6e5a5018cc06ddce98fb79 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,13 +1,16 @@ image: ralfjung/opam-ci:latest +variables: + CPU_CORES: "9" + stdpp-coq8.5: tags: - - coq + - fp-timing script: # prepare - . build/opam-ci.sh coq 8.5.3 # build - - 'time make -j8' + - 'time make -j$CPU_CORES' cache: key: "coq8.5" paths: @@ -19,12 +22,13 @@ stdpp-coq8.5: stdpp-coq8.6: tags: - - coq + - fp-timing script: # prepare - . build/opam-ci.sh coq 8.6 + - env | egrep '^(CI_BUILD_REF|CI_RUNNER)' > build-env.txt # build - - 'time make -j8 TIMED=y 2>&1 | tee build-log.txt' + - 'time make -j$CPU_CORES TIMED=y 2>&1 | tee build-log.txt' - 'if fgrep Axiom build-log.txt >/dev/null; then exit 1; fi' - 'cat build-log.txt | egrep "[a-zA-Z0-9_/-]+ \(user: [0-9]" | tee build-time.txt' - 'if (( RANDOM % 10 == 0 )); then make validate; fi' @@ -39,3 +43,4 @@ stdpp-coq8.6: artifacts: paths: - build-time.txt + - build-env.txt diff --git a/build/opam-ci.sh b/build/opam-ci.sh index c4189bab6cf3199a00526ea958918c909cfd23d5..20d87f9d4da508096531227791ccce63da17bd6f 100755 --- a/build/opam-ci.sh +++ b/build/opam-ci.sh @@ -4,16 +4,21 @@ set -e # Prepare OPAM configuration export OPAMROOT="$(pwd)/opamroot" -export OPAMJOBS=16 +export OPAMJOBS="$((2*$CPU_CORES))" export OPAM_EDITOR="$(which false)" # Make sure we got a good OPAM test -d "$OPAMROOT" || (mkdir "$OPAMROOT" && opam init --no-setup -y) eval `opam conf env` +if test $(find "$OPAMROOT/repo/package-index" -mtime +0); then + # last update was more than a day ago + opam update +else + echo "[opam-ci] Not updating opam." +fi test -d "$OPAMROOT/repo/coq-extra-dev" || opam repo add coq-extra-dev https://coq.inria.fr/opam/extra-dev -p 5 test -d "$OPAMROOT/repo/coq-core-dev" || opam repo add coq-core-dev https://coq.inria.fr/opam/core-dev -p 5 test -d "$OPAMROOT/repo/coq-released" || opam repo add coq-released https://coq.inria.fr/opam/released -p 10 -opam update # Install fixed versions of some dependencies echo