diff options
| author | Gaëtan Gilbert | 2020-11-25 11:27:07 +0100 |
|---|---|---|
| committer | Gaëtan Gilbert | 2020-12-02 10:43:10 +0100 |
| commit | 61a784aa031d1fcb0913e83206faa5265e3f5a17 (patch) | |
| tree | 454a4c2e3eae40e2936fd4fde78fc142e6e97568 | |
| parent | b3b4d641dafe58ad04932c5bb5cc2f4f3f54d91f (diff) | |
gitlab CI: remove redundant "dependencies" info
When we started using "needs" for the acyclic graph scheduling we
needed to duplicate dependencies and needs (I forgot if it was
documented or just buggy).
Nowadays gitlab doc https://docs.gitlab.com/ee/ci/yaml/#needs says
>In GitLab 12.6 and later, you can’t combine the dependencies keyword
with needs to control artifact downloads in jobs. dependencies is
still valid in jobs that do not use needs.
Some jobs in stage-1 had "dependencies: []" without a corresponding
"needs", not sure why as the only job in a previous stage is
docker-boot which has no artifacts to skip.
We don't want "needs: []" as that would fail to wait for the docker
image, so we just have nothing instead.
| -rw-r--r-- | .gitlab-ci.yml | 107 |
1 files changed, 11 insertions, 96 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index af54edfa21..749b74d584 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,11 +9,11 @@ stages: - stage-5 # Only dependencies in stage 1, 2, 3, and 4 - deploy -# When a job has no dependencies, it goes to stage 1. Otherwise, we -# set both "needs" and "dependencies". "needs" is a superset of -# "dependencies" that should include all the transitive dependencies. -# "dependencies" only list the previous jobs whose artifact we need to -# keep. +# When a job has no dependencies, it goes to stage 1. Otherwise, we +# set "needs" to contain all transitive dependencies (with "artifacts: +# false" when we don't want the artifacts). We include the transitive +# dependencies due to gitlab bugs sometimes starting the job even if a +# transitive dep failed, see #10699 / 7b59d8c9d9b2104de7162ec0e40f6182a6830046. # some default values variables: @@ -112,7 +112,6 @@ before_script: variables: - $ONLY_WINDOWS == "true" interruptible: true - dependencies: [] script: # flambda can be pretty stack hungry, specially with -O3 # See also https://github.com/ocaml/ocaml/issues/7842#issuecomment-596863244 @@ -141,8 +140,6 @@ before_script: interruptible: true needs: - build:edge+flambda:dune:dev - dependencies: - - build:edge+flambda:dune:dev script: - tar xfj _build.tar.bz2 - set -e @@ -158,7 +155,7 @@ before_script: name: "$CI_JOB_NAME" expire_in: 2 months -# every non build job must set dependencies otherwise all build +# every non build job must set "needs" otherwise all build # artifacts are used together and we may get some random Coq. To that # purpose, we add a spurious dependency `not-a-real-job` that must be # overridden otherwise the CI will fail. @@ -169,7 +166,7 @@ before_script: variables: - $ONLY_WINDOWS == "true" interruptible: true - dependencies: + needs: - not-a-real-job script: - SPHINXENV='COQBIN="'"$PWD"'/_install_ci/bin/"' @@ -181,14 +178,14 @@ before_script: - _install_ci/share/doc/coq/ expire_in: 2 months -# set dependencies when using +# set "needs" when using .test-suite-template: stage: stage-2 except: variables: - $ONLY_WINDOWS == "true" interruptible: true - dependencies: + needs: - not-a-real-job script: - cd test-suite @@ -206,14 +203,14 @@ before_script: # Gitlab doesn't support yet "expire_in: never" so we use the instance default # expire_in: never -# set dependencies when using +# set "needs" when using .validate-template: stage: stage-2 except: variables: - $ONLY_WINDOWS == "true" interruptible: true - dependencies: + needs: - not-a-real-job script: # exit 0: workaround for https://gitlab.com/gitlab-org/gitlab/issues/202505 @@ -249,15 +246,11 @@ before_script: when: always needs: - build:base - dependencies: - - build:base .ci-template-flambda: extends: .ci-template needs: - build:edge+flambda - dependencies: - - build:edge+flambda variables: OPAM_SWITCH: "edge" OPAM_VARIANT: "+flambda" @@ -271,7 +264,6 @@ before_script: - artifacts when: always expire_in: 1 week - dependencies: [] tags: - windows-inria before_script: [] @@ -373,7 +365,6 @@ lint: variables: - $ONLY_WINDOWS == "true" script: dev/lint-repository.sh - dependencies: [] variables: GIT_DEPTH: "" # we need an unknown amount of history for per-commit linting OPAM_SWITCH: "edge" @@ -386,7 +377,6 @@ pkg:opam: - $ONLY_WINDOWS == "true" interruptible: true # OPAM will build out-of-tree so no point in importing artifacts - dependencies: [] script: - set -e - opam pin add --kind=path coq.dev . @@ -410,7 +400,6 @@ pkg:opam: GIT_STRATEGY: none NIXOS_PUBLIC_KEY: cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= - dependencies: [] # We don't need to download build artifacts before_script: [] # We don't want to use the shared 'before_script' script: - cat /proc/{cpu,mem}info || true @@ -454,7 +443,6 @@ pkg:nix:deploy:channel: - /^v.*\..*$/ variables: - $CACHIX_DEPLOYMENT_KEY - dependencies: [] needs: - pkg:nix:deploy script: @@ -476,8 +464,6 @@ pkg:nix: doc:refman: extends: .doc-template - dependencies: - - build:base needs: - build:base @@ -518,10 +504,6 @@ doc:refman:deploy: only: variables: - $DOCUMENTATION_DEPLOY_KEY - dependencies: - - doc:ml-api:odoc - - doc:refman:dune - - build:base needs: - doc:ml-api:odoc - doc:refman:dune @@ -552,15 +534,11 @@ doc:ml-api:odoc: test-suite:base: extends: .test-suite-template - dependencies: - - build:base needs: - build:base test-suite:base+32bit: extends: .test-suite-template - dependencies: - - build:base+32bit needs: - build:base+32bit variables: @@ -569,8 +547,6 @@ test-suite:base+32bit: test-suite:edge+flambda: extends: .test-suite-template - dependencies: - - build:edge+flambda needs: - build:edge+flambda variables: @@ -584,8 +560,6 @@ test-suite:edge:dune:dev: variables: - $ONLY_WINDOWS == "true" interruptible: true - dependencies: - - build:edge+flambda:dune:dev needs: - build:edge+flambda:dune:dev script: @@ -608,7 +582,6 @@ test-suite:edge:dune:dev: variables: - $ONLY_WINDOWS == "true" interruptible: true - dependencies: [] script: - opam switch create $OCAMLVER --empty - eval $(opam env) @@ -637,8 +610,6 @@ test-suite:edge:dune:dev: test-suite:base+async: extends: .test-suite-template - dependencies: - - build:base needs: - build:base variables: @@ -651,15 +622,11 @@ test-suite:base+async: validate:base: extends: .validate-template - dependencies: - - build:base needs: - build:base validate:base+32bit: extends: .validate-template - dependencies: - - build:base+32bit needs: - build:base+32bit variables: @@ -668,8 +635,6 @@ validate:base+32bit: validate:edge+flambda: extends: .validate-template - dependencies: - - build:edge+flambda needs: - build:edge+flambda variables: @@ -679,8 +644,6 @@ validate:edge+flambda: validate:quick: extends: .validate-template - dependencies: - - build:quick needs: - build:quick only: @@ -707,9 +670,6 @@ library:ci-color: needs: - build:edge+flambda - plugin:ci-bignums - dependencies: - - build:edge+flambda - - plugin:ci-bignums library:ci-compcert: stage: stage-3 @@ -731,9 +691,6 @@ library:ci-coqprime: needs: - build:edge+flambda - plugin:ci-bignums - dependencies: - - build:edge+flambda - - plugin:ci-bignums library:ci-coqtail: extends: .ci-template @@ -744,9 +701,6 @@ library:ci-coquelicot: needs: - build:edge+flambda - library:ci-mathcomp - dependencies: - - build:edge+flambda - - library:ci-mathcomp library:ci-cross_crypto: extends: .ci-template @@ -765,11 +719,6 @@ library:ci-fiat_crypto: - library:ci-coqprime - plugin:ci-bignums - plugin:ci-rewriter - dependencies: - - build:edge+flambda - - library:ci-coqprime - - plugin:ci-bignums - - plugin:ci-rewriter library:ci-fiat_crypto_legacy: extends: .ci-template-flambda @@ -787,12 +736,6 @@ library:ci-fiat_crypto_ocaml: - plugin:ci-bignums - plugin:ci-rewriter - library:ci-fiat_crypto - dependencies: - - build:edge+flambda - - library:ci-coqprime - - plugin:ci-bignums - - plugin:ci-rewriter - - library:ci-fiat_crypto library:ci-flocq: extends: .ci-template-flambda @@ -809,12 +752,6 @@ library:ci-interval: - library:ci-flocq - library:ci-mathcomp - plugin:ci-bignums - dependencies: - - build:edge+flambda - - library:ci-coquelicot - - library:ci-flocq - - library:ci-mathcomp - - plugin:ci-bignums library:ci-oddorder: extends: .ci-template-flambda @@ -822,9 +759,6 @@ library:ci-oddorder: needs: - build:edge+flambda - library:ci-mathcomp - dependencies: - - build:edge+flambda - - library:ci-mathcomp library:ci-fourcolor: extends: .ci-template-flambda @@ -832,9 +766,6 @@ library:ci-fourcolor: needs: - build:edge+flambda - library:ci-mathcomp - dependencies: - - build:edge+flambda - - library:ci-mathcomp library:ci-corn: extends: .ci-template-flambda @@ -843,9 +774,6 @@ library:ci-corn: - build:edge+flambda - plugin:ci-bignums - library:ci-math_classes - dependencies: - - build:edge+flambda - - library:ci-math_classes plugin:ci-gappa: extends: .ci-template-flambda @@ -853,9 +781,6 @@ plugin:ci-gappa: needs: - build:edge+flambda - library:ci-flocq - dependencies: - - build:edge+flambda - - library:ci-flocq library:ci-geocoq: extends: .ci-template-flambda @@ -872,9 +797,6 @@ library:ci-math_classes: needs: - build:edge+flambda - plugin:ci-bignums - dependencies: - - build:edge+flambda - - plugin:ci-bignums library:ci-mathcomp: extends: .ci-template-flambda @@ -900,9 +822,6 @@ library:ci-vst: needs: - build:edge+flambda - library:ci-flocq - dependencies: - - build:edge+flambda - - library:ci-flocq # Plugins are by definition the projects that depend on Coq's ML API @@ -933,9 +852,6 @@ plugin:ci-metacoq: needs: - build:base - plugin:ci-equations - dependencies: - - build:base - - plugin:ci-equations plugin:ci-mtac2: extends: .ci-template @@ -952,7 +868,6 @@ plugin:plugin-tutorial: variables: - $ONLY_WINDOWS == "true" interruptible: true - dependencies: [] script: - ./configure -local -warn-error yes - make -j "$NJOBS" plugin-tutorial |
