forked from bitcoin/bitcoin
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge bitcoin#864: Add support for Cirrus CI
cc2a545 ci: Refactor Nix shell files (Jonas Nick) 2480e55 ci: Remove support for Travis CI (Tim Ruffing) 2b359f1 ci: Enable simple cache for brewing valgrind on macOS (Tim Ruffing) 8c02e46 ci: Add support for Cirrus CI (Tim Ruffing) Pull request description: ACKs for top commit: sipa: ACK cc2a545. Tested by introducing bugs: bitcoin#883, bitcoin#884, bitcoin#885, bitcoin#886, bitcoin#887. jonasnick: ACK cc2a545 Tree-SHA512: c9e8a891c9bda48b3fc307c2a85d2e4aa180531d084edd778d41c034769661627538ab397efac3abfc1a71c2f0730a45350dd212d499fe475c90a2a1b3c61ac8
- Loading branch information
Showing
9 changed files
with
259 additions
and
123 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,191 @@ | ||
env: | ||
WIDEMUL: auto | ||
BIGNUM: auto | ||
STATICPRECOMPUTATION: yes | ||
ECMULTGENPRECISION: auto | ||
ASM: no | ||
BUILD: check | ||
WITH_VALGRIND: yes | ||
RUN_VALGRIND: no | ||
EXTRAFLAGS: | ||
HOST: | ||
ECDH: no | ||
RECOVERY: no | ||
SCHNORRSIG: no | ||
EXPERIMENTAL: no | ||
CTIMETEST: yes | ||
BENCH: yes | ||
ITERS: 2 | ||
# We only need the top commit | ||
CIRRUS_CLONE_DEPTH: 1 | ||
|
||
cat_logs_snippet: &CAT_LOGS | ||
always: | ||
test_logs_script: | ||
- cat tests.log || true | ||
- cat exhaustive_tests.log || true | ||
- cat valgrind_ctime_test.log || true | ||
- cat bench.log || true | ||
on_failure: | ||
debug_output_script: | ||
- cat config.log || true | ||
- cat test_env.log || true | ||
- env | ||
|
||
task: | ||
name: "x86_64: Linux (Alpine Linux, Nix Shell)" | ||
container: | ||
dockerfile: ci/linux-nixos.Dockerfile | ||
# Reduce number of CPUs to be able to do more builds in parallel. | ||
cpu: 1 | ||
# More than enough for our scripts. | ||
memory: 1G | ||
matrix: &ENV_MATRIX | ||
- env: {WIDEMUL: int64, RECOVERY: yes} | ||
- env: {WIDEMUL: int64, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes} | ||
- env: {WIDEMUL: int128} | ||
- env: {WIDEMUL: int128, RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes} | ||
- env: {WIDEMUL: int128, ECDH: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes} | ||
- env: {WIDEMUL: int128, ASM: x86_64} | ||
- env: {BIGNUM: no} | ||
- env: {BIGNUM: no, RECOVERY: yes, EXPERIMENTAL: yes, SCHNORRSIG: yes} | ||
- env: {BIGNUM: no, STATICPRECOMPUTATION: no} | ||
- env: {BUILD: distcheck, WITH_VALGRIND: no, CTIMETEST: no, BENCH: no} | ||
- env: {CPPFLAGS: -DDETERMINISTIC} | ||
- env: {CFLAGS: -O0, CTIMETEST: no} | ||
- env: | ||
CFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer" | ||
LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer" | ||
UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1" | ||
BIGNUM: no | ||
ASM: x86_64 | ||
ECDH: yes | ||
RECOVERY: yes | ||
EXPERIMENTAL: yes | ||
SCHNORRSIG: yes | ||
CTIMETEST: no | ||
- env: { ECMULTGENPRECISION: 2 } | ||
- env: { ECMULTGENPRECISION: 8 } | ||
- env: | ||
RUN_VALGRIND: yes | ||
BIGNUM: no | ||
ASM: x86_64 | ||
ECDH: yes | ||
RECOVERY: yes | ||
EXPERIMENTAL: yes | ||
SCHNORRSIG: yes | ||
EXTRAFLAGS: "--disable-openssl-tests" | ||
BUILD: | ||
matrix: | ||
- env: | ||
CC: gcc | ||
- env: | ||
CC: clang | ||
test_script: | ||
- nix-shell ci/shell.nix --run ./ci/cirrus.sh | ||
<< : *CAT_LOGS | ||
|
||
task: | ||
name: "i686: Linux (Alpine Linux, Nix Shell)" | ||
container: | ||
dockerfile: ci/linux-nixos.Dockerfile | ||
cpu: 1 | ||
memory: 1G | ||
env: | ||
HOST: i686-linux-gnu | ||
ECDH: yes | ||
RECOVERY: yes | ||
EXPERIMENTAL: yes | ||
SCHNORRSIG: yes | ||
matrix: | ||
- env: | ||
CC: gcc | ||
- env: | ||
CC: clang | ||
matrix: | ||
- env: | ||
BIGNUM: gmp | ||
- env: | ||
BIGNUM: no | ||
test_script: | ||
- nix-shell ci/shell-i686.nix --run ./ci/cirrus.sh | ||
<< : *CAT_LOGS | ||
|
||
task: | ||
name: "x86_64: macOS Catalina" | ||
macos_instance: | ||
image: catalina-base | ||
env: | ||
HOMEBREW_NO_AUTO_UPDATE: 1 | ||
HOMEBREW_NO_INSTALL_CLEANUP: 1 | ||
matrix: | ||
<< : *ENV_MATRIX | ||
matrix: | ||
- env: | ||
CC: gcc-9 | ||
- env: | ||
CC: clang | ||
# Update Command Line Tools | ||
# Uncomment this if the Command Line Tools on the CirrusCI macOS image are too old to brew valgrind. | ||
# See https://apple.stackexchange.com/a/195963 for the implementation. | ||
## update_clt_script: | ||
## - system_profiler SPSoftwareDataType | ||
## - touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress | ||
## - |- | ||
## PROD=$(softwareupdate -l | grep "*.*Command Line" | tail -n 1 | awk -F"*" '{print $2}' | sed -e 's/^ *//' | sed 's/Label: //g' | tr -d '\n') | ||
## # For debugging | ||
## - softwareupdate -l && echo "PROD: $PROD" | ||
## - softwareupdate -i "$PROD" --verbose | ||
## - rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress | ||
## | ||
brew_valgrind_pre_script: | ||
- brew config | ||
- brew tap --shallow LouisBrunner/valgrind | ||
# Fetch valgrind source but don't build it yet. | ||
- brew fetch --HEAD LouisBrunner/valgrind/valgrind | ||
brew_valgrind_cache: | ||
# This is $(brew --cellar valgrind) but command substition does not work here. | ||
folder: /usr/local/Cellar/valgrind | ||
# Rebuild cache if ... | ||
fingerprint_script: | ||
# ... macOS version changes: | ||
- sw_vers | ||
# ... brew changes: | ||
- brew config | ||
# ... valgrind changes: | ||
- git -C "$(brew --cache)/valgrind--git" rev-parse HEAD | ||
populate_script: | ||
# If there's no hit in the cache, build and install valgrind. | ||
- brew install --HEAD LouisBrunner/valgrind/valgrind | ||
brew_valgrind_post_script: | ||
# If we have restored valgrind from the cache, tell brew to create symlink to the PATH. | ||
# If we haven't restored from cached (and just run brew install), this is a no-op. | ||
- brew link valgrind | ||
brew_script: | ||
- brew install automake libtool gmp gcc@9 | ||
test_script: | ||
- ./ci/cirrus.sh | ||
<< : *CAT_LOGS | ||
|
||
task: | ||
name: "s390x (big-endian): Linux (Debian QEMU)" | ||
container: | ||
dockerfile: ci/linux-debian-s390-qemu.Dockerfile | ||
cpu: 1 | ||
memory: 1G | ||
env: | ||
QEMU_CMD: qemu-s390x | ||
HOST: s390x-linux-gnu | ||
BUILD: | ||
WITH_VALGRIND: no | ||
BIGNUM: no | ||
ECDH: yes | ||
RECOVERY: yes | ||
EXPERIMENTAL: yes | ||
SCHNORRSIG: yes | ||
CTIMETEST: no | ||
test_script: | ||
# https://sourceware.org/bugzilla/show_bug.cgi?id=27008 | ||
- rm /etc/ld.so.cache | ||
- ./ci/cirrus.sh | ||
<< : *CAT_LOGS |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
FROM debian | ||
|
||
RUN dpkg --add-architecture s390x | ||
RUN apt-get update | ||
RUN apt-get install --no-install-recommends --no-upgrade -y make automake libtool | ||
RUN apt-get install --no-install-recommends --no-upgrade -y gcc-s390x-linux-gnu libc6-dev-s390x-cross qemu-user libc6:s390x |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
FROM nixos/nix | ||
|
||
COPY ci/shell.nix /tmp | ||
COPY ci/shell-i686.nix /tmp | ||
|
||
RUN nix-channel --remove nixpkgs | ||
RUN nix-channel --add https://nixos.org/channels/nixos-20.09 nixpkgs | ||
RUN nix-channel --update | ||
|
||
# Run dummy command "true" in the nix-shell just to get the packages prepared. | ||
RUN nix-shell /tmp/shell.nix --command true | ||
RUN nix-shell /tmp/shell-i686.nix --command true |
Oops, something went wrong.