summaryrefslogtreecommitdiffstats
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml48
1 files changed, 43 insertions, 5 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f56f2426..3aac823a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,7 +12,7 @@ after_script:
buster:
tags:
- - self-hosted
+ - linux
stage: build
image: registry.gitlab.com/sequoia-pgp/build-docker-image/buster:latest
@@ -25,17 +25,19 @@ buster:
bullseye:
tags:
- - self-hosted
+ - linux
stage: build
image: registry.gitlab.com/sequoia-pgp/build-docker-image/bullseye:latest
script:
- make test # XXX: We cannot currently use valgrind, https://github.com/rust-lang/rust/issues/68979
- make
+ - if ! git diff --quiet Cargo.lock ; then echo "Cargo.lock changed. Please add the change to the corresponding commit." ; false ; fi
- make -C tool update-usage
- - if ! git diff --quiet ; then echo "Please run 'make -C tool update-usage' and commit the result." ; false ; fi
+ - if ! git diff --quiet tool ; then echo "Please run 'make -C tool update-usage' and commit the result." ; false ; fi
- make -C sqv update-usage
- - if ! git diff --quiet ; then echo "Please run 'make -C sqv update-usage' and commit the result." ; false ; fi
+ - if ! git diff --quiet sqv ; then echo "Please run 'make -C sqv update-usage' and commit the result." ; false ; fi
+ - if ! git diff --quiet ; then echo "The build changed the source. Please investigate." ; git diff ; fi
variables:
CARGO_TARGET_DIR: $CI_PROJECT_DIR/../target.$CI_CONCURRENT_ID.bullseye
@@ -43,7 +45,7 @@ bullseye:
rust-stable:
tags:
- - self-hosted
+ - linux
stage: build
image: rust:1-slim-buster
@@ -63,6 +65,42 @@ rust-stable:
CARGO_TARGET_DIR: $CI_PROJECT_DIR/../target.$CI_CONCURRENT_ID.rust-stable
RUSTFLAGS: -D warnings -A unused-parens
+windows:
+ tags:
+ - win
+ - win2019
+ stage: build
+ # This job takes ~40 minutes to run, let's only execute it manually or for
+ # scheduled builds, otherwise this will stall MRs often not related to Windows
+ only:
+ - /windows/i # refs containing 'windows' keyword
+ - tags
+ - web
+ - scheduled
+ before_script:
+ - $env:USERNAME
+ - $env:USERPROFILE
+ # Install Rust 1.40
+ - $env:CARGO_HOME = "$env:ProgramFiles\cargo"
+ - $env:RUSTUP_HOME = "$env:ProgramFiles\rustup"
+ - Invoke-WebRequest https://win.rustup.rs -OutFile rustup-init.exe
+ - .\rustup-init.exe -y --default-toolchain 1.40.0 --default-host x86_64-pc-windows-gnu --profile minimal
+ - $env:Path += ";$env:ProgramFiles\cargo\bin"
+ - rustup --version
+ - rustc --version --verbose
+ # Install chocolatey
+ - Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
+ # Install MSYS2/mingw-w64
+ - choco install msys2 -y
+ - $env:Path += ";C:\tools\msys64"
+ - $env:MSYSTEM = "MINGW64"
+ - $env:MSYS = "winsymlinks:nativestrict"
+ - $env:MSYS2_PATH_TYPE = "inherit" # Inherit PATH from Windows
+ - $env:CHERE_INVOKING = "1" # Inherit working directory
+ - $env:CFLAGS = "" # Disregard C warnings due to MinGW being funky
+ script: C:/tools/msys64/usr/bin/bash.exe -l -c "bash -x ./.gitlab-ci/test-msys2.sh"
+ after_script: []
+
variables:
DEBIAN_FRONTEND: noninteractive
CARGO_HOME: $CI_PROJECT_DIR/../cargo