summaryrefslogtreecommitdiffstats
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorNeal H. Walfield <neal@pep.foundation>2022-01-12 11:27:09 +0100
committerNeal H. Walfield <neal@pep.foundation>2022-01-12 14:52:21 +0100
commit47d962800f46ba72e9edbc02dcd086cd96d18f1e (patch)
treeac499afdac7262f3120c5058c736018504313287 /.gitlab-ci.yml
parent2c25b8f398947d707fab519a83734ff51439cb34 (diff)
ci: DRY out .gitlab-ci.yml.
- Move common functionality in before_script and after_script code to separate stanzas.
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml81
1 files changed, 52 insertions, 29 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a2937a6f..dfb0940f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,18 +3,49 @@ stages:
- build
- test
-before_script:
+# These stanzas do some common management tasks before and after the
+# job-specific before_script and after_script stanzas are run.
+# before_script_start configures any default global state. The
+# job-specific before_script can override this state, if required.
+# before_script_end prints out information about the environment to
+# improve debugging; it does not modify the environment.
+# after_script_end does some common management tasks after the
+# job-specific after_script is run. It prints information about the
+# environment, and does some clean up.
+#
+# Add this to your stanza as follows:
+#
+# before_script:
+# - *before_script_start
+# - *** YOUR CODE HERE ***
+# - *before_script_end
+# after_script:
+# - *** YOUR CODE HERE ***
+# - *after_script_end
+
+.before_script_start: &before_script_start
+ - 'if test "x${RUSTFLAGS+SET}" = xSET; then echo "\$RUSTFLAGS is set ($RUSTFLAGS)"; exit 1; fi'
+
+.before_script_end: &before_script_end
+ - 'if test "x${RUSTFLAGS+SET}" = xSET; then echo "WARNING: before_script set \$RUSTFLAGS ($RUSTFLAGS)"; fi'
+ - rustc --version --verbose
+ - cargo --version
+ - clang -v
- if [ -d $CARGO_TARGET_DIR ]; then find $CARGO_TARGET_DIR | wc --lines; du -sh $CARGO_TARGET_DIR; fi
- if [ -d $CARGO_HOME ]; then find $CARGO_HOME | wc --lines; du -sh $CARGO_HOME; fi
- - rustc --version
- - cargo --version
- - clang --version
-after_script:
+.after_script_end: &after_script_end
- if [ -d $CARGO_TARGET_DIR ]; then find $CARGO_TARGET_DIR -type f -atime +7 -delete; fi
- if [ -d $CARGO_TARGET_DIR ]; then du -sh $CARGO_TARGET_DIR; fi
- if [ -d $CARGO_HOME ]; then du -sh $CARGO_HOME; fi
+before_script:
+ - *before_script_start
+ - *before_script_end
+
+after_script:
+ - *after_script_end
+
build-bookworm:
tags:
- linux
@@ -122,7 +153,9 @@ benchmarks:
- web
- schedules
before_script:
+ - *before_script_start
- cargo install critcmp
+ - *before_script_end
script:
- cargo bench -- --color always --save-baseline $CI_COMMIT_SHA
after_script:
@@ -187,7 +220,9 @@ codespell:
image: registry.gitlab.com/sequoia-pgp/build-docker-image/bookworm:latest
before_script:
+ - *before_script_start
- codespell --version
+ - *before_script_end
script:
- $MAKE_TOP codespell CODESPELL_FLAGS=--summary
after_script: []
@@ -198,12 +233,9 @@ doc:
stage: build
image: registry.gitlab.com/sequoia-pgp/build-docker-image/rust-stable-prebuild:latest
before_script:
- - if [ -d $CARGO_TARGET_DIR ]; then find $CARGO_TARGET_DIR | wc --lines; du -sh $CARGO_TARGET_DIR; fi
- - if [ -d $CARGO_HOME ]; then find $CARGO_HOME | wc --lines; du -sh $CARGO_HOME; fi
+ - *before_script_start
- rustup override set stable
- - rustc --version
- - cargo --version
- - clang --version
+ - *before_script_end
script:
- cargo doc --document-private-items --no-deps
variables:
@@ -217,12 +249,9 @@ rust-stable:
stage: build
image: registry.gitlab.com/sequoia-pgp/build-docker-image/rust-stable-prebuild:latest
before_script:
- - if [ -d $CARGO_TARGET_DIR ]; then find $CARGO_TARGET_DIR | wc --lines; du -sh $CARGO_TARGET_DIR; fi
- - if [ -d $CARGO_HOME ]; then find $CARGO_HOME | wc --lines; du -sh $CARGO_HOME; fi
+ - *before_script_start
- rustup override set stable
- - rustc --version
- - cargo --version
- - clang --version
+ - *before_script_end
script:
- CARGO_PACKAGES="-p buffered-reader -p sequoia-openpgp" $MAKE_TOP test
variables:
@@ -235,15 +264,12 @@ clippy:
stage: build
image: registry.gitlab.com/sequoia-pgp/build-docker-image/rust-stable-prebuild:latest
before_script:
- - if [ -d $CARGO_TARGET_DIR ]; then find $CARGO_TARGET_DIR | wc --lines; du -sh $CARGO_TARGET_DIR; fi
- - if [ -d $CARGO_HOME ]; then find $CARGO_HOME | wc --lines; du -sh $CARGO_HOME; fi
+ - *before_script_start
- apt-get -y install libssl-dev capnproto libsqlite3-dev
- rustup override unset
- rustup component add clippy
- cargo clippy --version
- - rustc --version
- - cargo --version
- - clang --version
+ - *before_script_end
script:
- cargo clippy
variables:
@@ -261,12 +287,9 @@ rust-stable:arm64:
- $CI_PROJECT_NAMESPACE == "sequoia-pgp"
when: manual
before_script:
- - if [ -d $CARGO_TARGET_DIR ]; then find $CARGO_TARGET_DIR | wc --lines; du -sh $CARGO_TARGET_DIR; fi
- - if [ -d $CARGO_HOME ]; then find $CARGO_HOME | wc --lines; du -sh $CARGO_HOME; fi
+ - *before_script_start
- rustup override set stable
- - rustc --version
- - cargo --version
- - clang --version
+ - *before_script_end
script:
- CARGO_PACKAGES="-p buffered-reader -p sequoia-openpgp" $MAKE_TOP test
variables:
@@ -291,10 +314,6 @@ windows-gnu:
# Forks of this project most likely use gitlab's shared windows runners, which
# do not use the docker executor, so disable the windows jobs for forks.
- $CI_PROJECT_NAMESPACE == "sequoia-pgp"
- before_script:
- - clang -v
- - rustc --version --verbose
- - cargo --version
script:
- cargo test --workspace
# https://github.com/rust-lang/cargo/issues/5015
@@ -315,6 +334,8 @@ windows-msvc:
# do not use the docker executor, so disable the windows jobs for forks.
- $CI_PROJECT_NAMESPACE == "sequoia-pgp"
before_script:
+ # We don't call *before_script_start or *before_script_end as we
+ # don't have bash, clang, etc.
- rustc --version --verbose
- cargo --version
script:
@@ -344,6 +365,8 @@ windows-msvc-32:
# do not use the docker executor, so disable the windows jobs for forks.
- $CI_PROJECT_NAMESPACE == "sequoia-pgp"
before_script:
+ # We don't call *before_script_start or *before_script_end as we
+ # don't have bash, clang, etc.
- rm rust-toolchain
- rustup default 1.56.0-x86_64-pc-windows-msvc
- rustup target add i686-pc-windows-msvc