Merge bitcoin-core/secp256k1#1426: ci/cirrus: Add native ARM64 jobs
fa4d6c76b6dc249d02c926ad75725556614fdddd ci/cirrus: Add native ARM64 persistent workers (MarcoFalke) 2262d0eaab2aa1181f900acd2d8cd568047599b6 ci/cirrus: Bring back skeleton .cirrus.yml without jobs (Tim Ruffing) Pull request description: ACKs for top commit: real-or-random: ACK fa4d6c76b6dc249d02c926ad75725556614fdddd hebasto: re-ACK fa4d6c76b6dc249d02c926ad75725556614fdddd, only last two commits have been squashed since my recent [review](https://github.com/bitcoin-core/secp256k1/pull/1426#pullrequestreview-1636119941). Tree-SHA512: d1fee99d54a41a4126f7eb72695a56137c925dc9ce7cd692a60ea1262ac0789bbd6aa4e4dfc030f0d97d06aeeae0724a5f2d794a85ff533c6cf3cd215f6a4b7a
This commit is contained in:
commit
b314cf2833
95
.cirrus.yml
Normal file
95
.cirrus.yml
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
env:
|
||||||
|
### cirrus config
|
||||||
|
CIRRUS_CLONE_DEPTH: 1
|
||||||
|
### compiler options
|
||||||
|
HOST:
|
||||||
|
WRAPPER_CMD:
|
||||||
|
# Specific warnings can be disabled with -Wno-error=foo.
|
||||||
|
# -pedantic-errors is not equivalent to -Werror=pedantic and thus not implied by -Werror according to the GCC manual.
|
||||||
|
WERROR_CFLAGS: -Werror -pedantic-errors
|
||||||
|
MAKEFLAGS: -j4
|
||||||
|
BUILD: check
|
||||||
|
### secp256k1 config
|
||||||
|
ECMULTWINDOW: auto
|
||||||
|
ECMULTGENPRECISION: auto
|
||||||
|
ASM: no
|
||||||
|
WIDEMUL: auto
|
||||||
|
WITH_VALGRIND: yes
|
||||||
|
EXTRAFLAGS:
|
||||||
|
### secp256k1 modules
|
||||||
|
EXPERIMENTAL: no
|
||||||
|
ECDH: no
|
||||||
|
RECOVERY: no
|
||||||
|
SCHNORRSIG: no
|
||||||
|
ELLSWIFT: no
|
||||||
|
### test options
|
||||||
|
SECP256K1_TEST_ITERS:
|
||||||
|
BENCH: yes
|
||||||
|
SECP256K1_BENCH_ITERS: 2
|
||||||
|
CTIMETESTS: yes
|
||||||
|
# Compile and run the tests
|
||||||
|
EXAMPLES: yes
|
||||||
|
|
||||||
|
cat_logs_snippet: &CAT_LOGS
|
||||||
|
always:
|
||||||
|
cat_tests_log_script:
|
||||||
|
- cat tests.log || true
|
||||||
|
cat_noverify_tests_log_script:
|
||||||
|
- cat noverify_tests.log || true
|
||||||
|
cat_exhaustive_tests_log_script:
|
||||||
|
- cat exhaustive_tests.log || true
|
||||||
|
cat_ctime_tests_log_script:
|
||||||
|
- cat ctime_tests.log || true
|
||||||
|
cat_bench_log_script:
|
||||||
|
- cat bench.log || true
|
||||||
|
cat_config_log_script:
|
||||||
|
- cat config.log || true
|
||||||
|
cat_test_env_script:
|
||||||
|
- cat test_env.log || true
|
||||||
|
cat_ci_env_script:
|
||||||
|
- env
|
||||||
|
|
||||||
|
linux_arm64_container_snippet: &LINUX_ARM64_CONTAINER
|
||||||
|
env_script:
|
||||||
|
- env | tee /tmp/env
|
||||||
|
build_script:
|
||||||
|
- DOCKER_BUILDKIT=1 docker build --file "ci/linux-debian.Dockerfile" --tag="ci_secp256k1_arm"
|
||||||
|
- docker image prune --force # Cleanup stale layers
|
||||||
|
test_script:
|
||||||
|
- docker run --rm --mount "type=bind,src=./,dst=/ci_secp256k1" --env-file /tmp/env --replace --name "ci_secp256k1_arm" "ci_secp256k1_arm" bash -c "cd /ci_secp256k1/ && ./ci/ci.sh"
|
||||||
|
|
||||||
|
task:
|
||||||
|
name: "ARM64: Linux (Debian stable)"
|
||||||
|
persistent_worker:
|
||||||
|
labels:
|
||||||
|
type: arm64
|
||||||
|
env:
|
||||||
|
ECDH: yes
|
||||||
|
RECOVERY: yes
|
||||||
|
SCHNORRSIG: yes
|
||||||
|
ELLSWIFT: yes
|
||||||
|
matrix:
|
||||||
|
# Currently only gcc-snapshot, the other compilers are tested on GHA with QEMU
|
||||||
|
- env: { CC: 'gcc-snapshot' }
|
||||||
|
<< : *LINUX_ARM64_CONTAINER
|
||||||
|
<< : *CAT_LOGS
|
||||||
|
|
||||||
|
task:
|
||||||
|
name: "ARM64: Linux (Debian stable), Valgrind"
|
||||||
|
persistent_worker:
|
||||||
|
labels:
|
||||||
|
type: arm64
|
||||||
|
env:
|
||||||
|
ECDH: yes
|
||||||
|
RECOVERY: yes
|
||||||
|
SCHNORRSIG: yes
|
||||||
|
ELLSWIFT: yes
|
||||||
|
WRAPPER_CMD: 'valgrind --error-exitcode=42'
|
||||||
|
SECP256K1_TEST_ITERS: 2
|
||||||
|
matrix:
|
||||||
|
- env: { CC: 'gcc' }
|
||||||
|
- env: { CC: 'clang' }
|
||||||
|
- env: { CC: 'gcc-snapshot' }
|
||||||
|
- env: { CC: 'clang-snapshot' }
|
||||||
|
<< : *LINUX_ARM64_CONTAINER
|
||||||
|
<< : *CAT_LOGS
|
@ -29,11 +29,15 @@ RUN apt-get update && apt-get install --no-install-recommends -y \
|
|||||||
gcc-i686-linux-gnu libc6-dev-i386-cross libc6-dbg:i386 libubsan1:i386 libasan8:i386 \
|
gcc-i686-linux-gnu libc6-dev-i386-cross libc6-dbg:i386 libubsan1:i386 libasan8:i386 \
|
||||||
gcc-s390x-linux-gnu libc6-dev-s390x-cross libc6-dbg:s390x \
|
gcc-s390x-linux-gnu libc6-dev-s390x-cross libc6-dbg:s390x \
|
||||||
gcc-arm-linux-gnueabihf libc6-dev-armhf-cross libc6-dbg:armhf \
|
gcc-arm-linux-gnueabihf libc6-dev-armhf-cross libc6-dbg:armhf \
|
||||||
gcc-aarch64-linux-gnu libc6-dev-arm64-cross libc6-dbg:arm64 \
|
|
||||||
gcc-powerpc64le-linux-gnu libc6-dev-ppc64el-cross libc6-dbg:ppc64el \
|
gcc-powerpc64le-linux-gnu libc6-dev-ppc64el-cross libc6-dbg:ppc64el \
|
||||||
gcc-mingw-w64-x86-64-win32 wine64 wine \
|
gcc-mingw-w64-x86-64-win32 wine64 wine \
|
||||||
gcc-mingw-w64-i686-win32 wine32 \
|
gcc-mingw-w64-i686-win32 wine32 \
|
||||||
python3
|
python3 && \
|
||||||
|
if ! ( dpkg --print-architecture | grep --quiet "arm64" ) ; then \
|
||||||
|
apt-get install --no-install-recommends -y \
|
||||||
|
gcc-aarch64-linux-gnu libc6-dev-arm64-cross libc6-dbg:arm64 ;\
|
||||||
|
fi && \
|
||||||
|
apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Build and install gcc snapshot
|
# Build and install gcc snapshot
|
||||||
ARG GCC_SNAPSHOT_MAJOR=14
|
ARG GCC_SNAPSHOT_MAJOR=14
|
||||||
@ -44,7 +48,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y wget libgmp-dev
|
|||||||
sha512sum --check --ignore-missing sha512.sum && \
|
sha512sum --check --ignore-missing sha512.sum && \
|
||||||
# We should have downloaded exactly one tar.xz file
|
# We should have downloaded exactly one tar.xz file
|
||||||
ls && \
|
ls && \
|
||||||
[[ $(ls *.tar.xz | wc -l) -eq "1" ]] && \
|
[ $(ls *.tar.xz | wc -l) -eq "1" ] && \
|
||||||
tar xf *.tar.xz && \
|
tar xf *.tar.xz && \
|
||||||
mkdir gcc-build && cd gcc-build && \
|
mkdir gcc-build && cd gcc-build && \
|
||||||
../*/configure --prefix=/opt/gcc-snapshot --enable-languages=c --disable-bootstrap --disable-multilib --without-isl && \
|
../*/configure --prefix=/opt/gcc-snapshot --enable-languages=c --disable-bootstrap --disable-multilib --without-isl && \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user