]> Git Repo - secp256k1.git/blob - .cirrus.yml
ci: Remove support for Travis CI
[secp256k1.git] / .cirrus.yml
1 env:
2   WIDEMUL: auto
3   BIGNUM: auto
4   STATICPRECOMPUTATION: yes
5   ECMULTGENPRECISION: auto
6   ASM: no
7   BUILD: check
8   WITH_VALGRIND: yes
9   RUN_VALGRIND: no
10   EXTRAFLAGS:
11   HOST:
12   ECDH: no
13   RECOVERY: no
14   SCHNORRSIG: no
15   EXPERIMENTAL: no
16   CTIMETEST: yes
17   BENCH: yes
18   ITERS: 2
19   # We only need the top commit
20   CIRRUS_CLONE_DEPTH: 1
21
22 cat_logs_snippet: &CAT_LOGS
23   always:
24     test_logs_script:
25       - cat tests.log || true
26       - cat exhaustive_tests.log || true
27       - cat valgrind_ctime_test.log || true
28       - cat bench.log || true
29   on_failure:
30     debug_output_script:
31       - cat config.log || true
32       - cat test_env.log || true
33       - env
34
35 task:
36   name: "x86_64: Linux (Alpine Linux, Nix Shell)"
37   container:
38     dockerfile: ci/linux-nixos.Dockerfile
39     # Reduce number of CPUs to be able to do more builds in parallel.
40     cpu: 1
41     # More than enough for our scripts.
42     memory: 1G
43   matrix: &ENV_MATRIX
44     - env: {WIDEMUL:  int64,  RECOVERY: yes}
45     - env: {WIDEMUL:  int64,                 ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
46     - env: {WIDEMUL: int128}
47     - env: {WIDEMUL: int128,  RECOVERY: yes,            EXPERIMENTAL: yes, SCHNORRSIG: yes}
48     - env: {WIDEMUL: int128,                 ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes}
49     - env: {WIDEMUL: int128,  ASM: x86_64}
50     - env: {BIGNUM: no}
51     - env: {BIGNUM: no,       RECOVERY: yes,            EXPERIMENTAL: yes, SCHNORRSIG: yes}
52     - env: {BIGNUM: no,       STATICPRECOMPUTATION: no}
53     - env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETEST: no, BENCH: no}
54     - env: {CPPFLAGS: -DDETERMINISTIC}
55     - env: {CFLAGS: -O0, CTIMETEST: no}
56     - env:
57         CFLAGS:  "-fsanitize=undefined -fno-omit-frame-pointer"
58         LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
59         UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
60         BIGNUM: no
61         ASM: x86_64
62         ECDH: yes
63         RECOVERY: yes
64         EXPERIMENTAL: yes
65         SCHNORRSIG: yes
66         CTIMETEST: no
67     - env: { ECMULTGENPRECISION: 2 }
68     - env: { ECMULTGENPRECISION: 8 }
69     - env:
70         RUN_VALGRIND: yes
71         BIGNUM: no
72         ASM: x86_64
73         ECDH: yes
74         RECOVERY: yes
75         EXPERIMENTAL: yes
76         SCHNORRSIG: yes
77         EXTRAFLAGS: "--disable-openssl-tests"
78         BUILD:
79   matrix:
80     - env:
81         CC: gcc
82     - env:
83         CC: clang
84   test_script:
85     - nix-shell ci/shell.nix --run ./ci/cirrus.sh
86   << : *CAT_LOGS
87
88 task:
89   name: "i686: Linux (Alpine Linux, Nix Shell)"
90   container:
91     dockerfile: ci/linux-nixos.Dockerfile
92     cpu: 1
93     memory: 1G
94   env:
95     HOST: i686-linux-gnu
96     ECDH: yes
97     RECOVERY: yes
98     EXPERIMENTAL: yes
99     SCHNORRSIG: yes
100   matrix:
101     - env:
102         CC: gcc
103     - env:
104         CC: clang
105   matrix:
106     - env:
107         BIGNUM: gmp
108     - env:
109         BIGNUM: no
110   test_script:
111     - nix-shell ci/shell-i686.nix --run ./ci/cirrus.sh
112   << : *CAT_LOGS
113
114 task:
115   name: "x86_64: macOS Catalina"
116   macos_instance:
117     image: catalina-base
118   env:
119     HOMEBREW_NO_AUTO_UPDATE: 1
120     HOMEBREW_NO_INSTALL_CLEANUP: 1
121   matrix:
122     << : *ENV_MATRIX
123   matrix:
124     - env:
125         CC: gcc-9
126     - env:
127         CC: clang
128   # Update Command Line Tools
129   # Uncomment this if the Command Line Tools on the CirrusCI macOS image are too old to brew valgrind.
130   # See https://apple.stackexchange.com/a/195963 for the implementation.
131   ## update_clt_script:
132   ##   - system_profiler SPSoftwareDataType
133   ##   - touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
134   ##   - |-
135   ##     PROD=$(softwareupdate -l | grep "*.*Command Line" | tail -n 1 | awk -F"*" '{print $2}' | sed -e 's/^ *//' | sed 's/Label: //g' | tr -d '\n')
136   ##   # For debugging
137   ##   - softwareupdate -l && echo "PROD: $PROD"
138   ##   - softwareupdate -i "$PROD" --verbose
139   ##   - rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
140   ##
141   brew_valgrind_pre_script:
142     - brew config
143     - brew tap --shallow LouisBrunner/valgrind
144     # Fetch valgrind source but don't build it yet.
145     - brew fetch --HEAD LouisBrunner/valgrind/valgrind
146   brew_valgrind_cache:
147     # This is $(brew --cellar valgrind) but command substition does not work here.
148     folder: /usr/local/Cellar/valgrind
149     # Rebuild cache if ...
150     fingerprint_script:
151       # ... macOS version changes:
152       - sw_vers
153       # ... brew changes:
154       - brew config
155       # ... valgrind changes:
156       - git -C "$(brew --cache)/valgrind--git" rev-parse HEAD
157     populate_script:
158       # If there's no hit in the cache, build and install valgrind.
159       - brew install --HEAD LouisBrunner/valgrind/valgrind
160   brew_valgrind_post_script:
161     # If we have restored valgrind from the cache, tell brew to create symlink to the PATH.
162     # If we haven't restored from cached (and just run brew install), this is a no-op.
163     - brew link valgrind
164   brew_script:
165     - brew install automake libtool gmp gcc@9
166   test_script:
167     - ./ci/cirrus.sh
168   << : *CAT_LOGS
169
170 task:
171   name: "s390x (big-endian): Linux (Debian QEMU)"
172   container:
173     dockerfile: ci/linux-debian-s390-qemu.Dockerfile
174     cpu: 1
175     memory: 1G
176   env:
177     QEMU_CMD: qemu-s390x
178     HOST: s390x-linux-gnu
179     BUILD:
180     WITH_VALGRIND: no
181     BIGNUM: no
182     ECDH: yes
183     RECOVERY: yes
184     EXPERIMENTAL: yes
185     SCHNORRSIG: yes
186     CTIMETEST: no
187   test_script:
188     # https://sourceware.org/bugzilla/show_bug.cgi?id=27008
189     - rm /etc/ld.so.cache
190     - ./ci/cirrus.sh
191   << : *CAT_LOGS
This page took 0.033891 seconds and 4 git commands to generate.