aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2019-08-23 20:47:39 +0200
committerEmilio Jesus Gallego Arias2019-12-16 10:31:42 +0100
commit861a83842efcb536e9ffdd0ba7173621daab47a4 (patch)
treea14a65f685f03150d191ee91e95d03da2fa4bccc
parentdf12d00bd01801088b6b8c50e51142e646053829 (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.yml16
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"