diff options
| author | Emilio Jesus Gallego Arias | 2019-08-23 20:47:39 +0200 |
|---|---|---|
| committer | Emilio Jesus Gallego Arias | 2019-12-16 10:31:42 +0100 |
| commit | 861a83842efcb536e9ffdd0ba7173621daab47a4 (patch) | |
| tree | a14a65f685f03150d191ee91e95d03da2fa4bccc | |
| parent | df12d00bd01801088b6b8c50e51142e646053829 (diff) | |
[ci] [dune] Updates to dune builds artifacts.
Closes #10694
We modify handling of artifacts for dune builds:
- we preserve `_build/log` log as artifact for ci-builds,
- we use a tar.gz as to preserve file permissions which is necessary
in order to reuse the artifacts in an incremental build.
Dune uses this rule to digest a file:
```
Digest.generic (file_contents f, f.stats.st_perm land 0o100 (* Only take USR_X in account *))
```
Since a few releases, Gitlab CI uses `.zip` as the storage format for
artifacts, this means that files in `_build` will get the executable
bit set when they did not have it originally, making all the digest
cache to miss. This caused #10694 .
See https://gitlab.com/gitlab-org/gitlab/issues/18711
| -rw-r--r-- | .gitlab-ci.yml | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 935d5fda84..956d74c8c1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -103,13 +103,16 @@ before_script: - set -e - make -f Makefile.dune world - set +e + - tar cfj _build.tar.bz2 _build variables: OPAM_SWITCH: edge OPAM_VARIANT: "+flambda" artifacts: name: "$CI_JOB_NAME" + when: always paths: - - _build/ + - _build/log + - _build.tar.bz2 expire_in: 1 week .dune-ci-template: @@ -119,6 +122,7 @@ before_script: dependencies: - build:edge+flambda:dune:dev script: + - tar xfj _build.tar.bz2 - set -e - echo 'start:coq.test' - make -f Makefile.dune "$DUNE_TARGET" @@ -128,6 +132,7 @@ before_script: OPAM_SWITCH: edge OPAM_VARIANT: "+flambda" artifacts: + when: always name: "$CI_JOB_NAME" expire_in: 2 months @@ -409,6 +414,7 @@ doc:refman:dune: DUNE_TARGET: refman-html artifacts: paths: + - _build/log - _build/default/doc/sphinx_build/html doc:stdlib:dune: @@ -417,6 +423,7 @@ doc:stdlib:dune: DUNE_TARGET: stdlib-html artifacts: paths: + - _build/log - _build/default/doc/stdlib/html doc:refman:deploy: @@ -456,6 +463,7 @@ doc:ml-api:odoc: DUNE_TARGET: apidoc artifacts: paths: + - _build/log - _build/default/_doc/ test-suite:base: @@ -486,13 +494,15 @@ test-suite:edge+flambda: OPAM_VARIANT: "+flambda" only: *full-ci -test-suite:egde:dune:dev: +test-suite:edge:dune:dev: stage: stage-2 dependencies: - build:edge+flambda:dune:dev needs: - build:edge+flambda:dune:dev - script: make -f Makefile.dune test-suite + script: + - tar xfj _build.tar.bz2 + - make -f Makefile.dune test-suite variables: OPAM_SWITCH: edge OPAM_VARIANT: "+flambda" |
