|
|
|
stages:
|
|
|
|
- pre-check
|
|
|
|
- build
|
|
|
|
- test
|
|
|
|
|
|
|
|
# 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
|
|
|
|
|
|
|
|
.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
|
|
|
|
|
|
|
|
bookworm:
|
|
|
|
tags:
|
|
|
|
- linux
|
|
|
|
stage: build
|
|
|
|
image: registry.gitlab.com/sequoia-pgp/build-docker-image/bookworm-prebuild:latest
|
|
|
|
needs:
|
|
|
|
- codespell
|
|
|
|
script:
|
|
|
|
- cargo test
|
|
|
|
variables:
|
|
|
|
CARGO_TARGET_DIR: /target
|
|
|
|
CARGO_HOME: /cargo
|
|
|
|
after_script: []
|
|
|
|
|
|
|
|
all_commits:
|
|
|
|
# Test each commit up to main, to facilitate bisecting.
|
|
|
|
stage: test
|
|
|
|
image: registry.gitlab.com/sequoia-pgp/build-docker-image/rust-stable-prebuild:latest
|
|
|
|
needs: ["rust-stable"]
|
|
|
|
script:
|
|
|
|
- .ci/all_commits.sh
|
|
|
|
variables:
|
|
|
|
CARGO_TARGET_DIR: /target
|
|
|
|
CARGO_HOME: /cargo
|
|
|
|
GIT_STRATEGY: clone
|
|
|
|
|
|
|
|
codespell:
|
|
|
|
tags:
|
|
|
|
- linux
|
|
|
|
stage: pre-check
|
|
|
|
image: registry.gitlab.com/sequoia-pgp/build-docker-image/bookworm:latest
|
|
|
|
|
|
|
|
before_script:
|
|
|
|
- *before_script_start
|
|
|
|
- codespell --version
|
|
|
|
- *before_script_end
|
|
|
|
script:
|
|
|
|
- codespell --config .codespellrc --summary
|
|
|
|
after_script: []
|
|
|
|
|
|
|
|
rust-stable:
|
|
|
|
tags:
|
|
|
|
- linux
|
|
|
|
stage: build
|
|
|
|
image: registry.gitlab.com/sequoia-pgp/build-docker-image/rust-stable-prebuild:latest
|
|
|
|
before_script:
|
|
|
|
- *before_script_start
|
|
|
|
- rustup override set stable
|
|
|
|
- *before_script_end
|
|
|
|
script:
|
|
|
|
- cargo test
|
|
|
|
variables:
|
|
|
|
CARGO_TARGET_DIR: /target
|
|
|
|
CARGO_HOME: /cargo
|
|
|
|
|
|
|
|
rust-stable-armv7:
|
|
|
|
tags:
|
|
|
|
- linux
|
|
|
|
stage: build
|
|
|
|
image: registry.gitlab.com/sequoia-pgp/build-docker-image/bullseye-cross-arm-prebuild:latest
|
|
|
|
before_script:
|
|
|
|
- *before_script_start
|
|
|
|
- cat .ci/snippet_for_cross_compilation_config.toml >> .cargo/config.toml
|
|
|
|
- rm rust-toolchain
|
|
|
|
- *before_script_end
|
|
|
|
script:
|
|
|
|
- cargo test
|
|
|
|
variables:
|
|
|
|
CARGO_TARGET_DIR: /target
|
|
|
|
CARGO_HOME: /cargo
|
|
|
|
CARGO_FLAGS: --target=armv7-unknown-linux-gnueabihf
|
|
|
|
PKG_CONFIG_PATH: /usr/lib/arm-linux-gnueabihf/pkgconfig
|
|
|
|
PKG_CONFIG_ALLOW_CROSS: 1
|
|
|
|
|
|
|
|
windows-gnu:
|
|
|
|
tags:
|
|
|
|
- win
|
|
|
|
- win2019
|
|
|
|
stage: build
|
|
|
|
image: registry.gitlab.com/sequoia-pgp/build-docker-image/windows-gnu
|
|
|
|
# This job takes ~20 minutes to run, let's only execute it manually or for
|
|
|
|
# scheduled builds, otherwise this will stall MRs often not related to Windows
|
|
|
|
only:
|
|
|
|
refs:
|
|
|
|
- /windows/i # refs containing 'windows' keyword
|
|
|
|
- tags
|
|
|
|
- web
|
|
|
|
- schedules
|
|
|
|
variables:
|
|
|
|
# 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"
|
|
|
|
script:
|
|
|
|
- cargo test
|
|
|
|
# https://github.com/rust-lang/cargo/issues/5015
|
|
|
|
- cargo test --manifest-path Cargo.toml --no-default-features --features crypto-cng
|
|
|
|
after_script: []
|
|
|
|
variables:
|
|
|
|
CFLAGS: "" # Silence some C warnings when compiling under Windows
|
|
|
|
|
|
|
|
windows-msvc:
|
|
|
|
tags:
|
|
|
|
- win
|
|
|
|
- win2019
|
|
|
|
stage: build
|
|
|
|
image: registry.gitlab.com/sequoia-pgp/build-docker-image/windows-msvc
|
|
|
|
only:
|
|
|
|
refs:
|
|
|
|
- /windows/i # refs containing 'windows' keyword
|
|
|
|
- tags
|
|
|
|
- web
|
|
|
|
- schedules
|
|
|
|
variables:
|
|
|
|
# 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:
|
|
|
|
# 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:
|
|
|
|
# https://github.com/rust-lang/cargo/issues/5015
|
|
|
|
- cargo test --manifest-path Cargo.toml --no-default-features --features crypto-cng
|
|
|
|
after_script: []
|
|
|
|
variables:
|
|
|
|
CFLAGS: "" # Silence some C warnings when compiling with MSVC
|
|
|
|
|
|
|
|
windows-msvc-32:
|
|
|
|
tags:
|
|
|
|
- win
|
|
|
|
- win2019
|
|
|
|
stage: build
|
|
|
|
image:
|
|
|
|
name: registry.gitlab.com/sequoia-pgp/build-docker-image/windows-msvc
|
|
|
|
# Set up a cross compilation environment for building x86 binaries on amd64, line copied from Dockerfile.windows.msvc
|
|
|
|
# see https://renenyffenegger.ch/notes/Windows/dirs/Program-Files-x86/Microsoft-Visual-Studio/version/edition/Common7/Tools/VsDevCmd_bat
|
|
|
|
#
|
|
|
|
# Alternatively: ["C:\\BuildTools\\VC\\Auxiliary\\Build\\vcvarsamd64_x86.bat", "&&", "type", "README", "&&", "powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]
|
|
|
|
# see https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=msvc-160
|
|
|
|
entrypoint: ["C:\\BuildTools\\Common7\\Tools\\VsDevCmd.bat", "-arch=x86", "-host_arch=amd64", "&&", "type", "README", "&&", "powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]
|
|
|
|
only:
|
|
|
|
variables:
|
|
|
|
# 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:
|
|
|
|
# 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
|
|
|
|
- rustup show
|
|
|
|
- rustc --version --verbose
|
|
|
|
- cargo --version
|
|
|
|
script:
|
|
|
|
# https://github.com/rust-lang/cargo/issues/5015
|
|
|
|
- cargo test --manifest-path Cargo.toml --no-default-features --features crypto-cng --target i686-pc-windows-msvc
|
|
|
|
after_script: []
|
|
|
|
variables:
|
|
|
|
CFLAGS: "" # Silence some C warnings when compiling with MSVC
|
|
|
|
|
|
|
|
variables:
|
|
|
|
DEBIAN_FRONTEND: noninteractive
|
|
|
|
CARGO_HOME: $CI_PROJECT_DIR/../cargo
|
|
|
|
CARGO_FLAGS: --color always
|
|
|
|
CARGO_INCREMENTAL: 0
|
|
|
|
RUST_BACKTRACE: full
|
|
|
|
CFLAGS: -Werror
|
|
|
|
QUICKCHECK_GENERATOR_SIZE: 500 # https://github.com/BurntSushi/quickcheck/pull/240 |