summaryrefslogtreecommitdiffstats
path: root/.gitlab-ci.yml
blob: baa7bd053eace61e06dd2713274e0576d55c6c93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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'
  - gpg --version || true

.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

windows-gnu:
  tags:
    - win
    - win2019
  stage: build
  image: registry.gitlab.com/sequoia-pgp/build-docker-image/windows-gnu:2022-05-15
  # 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:
    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
    - gpg --version
  script:
    - cargo run -p sequoia-openpgp --example supported-algorithms
    - cargo test -p sequoia-ipc
    # https://github.com/rust-lang/cargo/issues/5015
    - cargo test --manifest-path ipc/Cargo.toml --no-default-features --features crypto-cng,compression
  after_script: []
  variables:
    CFLAGS: "" # Silence some C warnings when compiling under Windows

variables:
  DEBIAN_FRONTEND: noninteractive
  CARGO_HOME: $CI_PROJECT_DIR/../cargo
  CARGO_FLAGS: --color always
  CARGO_INCREMENTAL: 0
  RUST_BACKTRACE: full
  CFLAGS: -Werror
  MAKE_TOP: make --file=.Makefile
  QUICKCHECK_GENERATOR_SIZE: 500 # https://github.com/BurntSushi/quickcheck/pull/240