ci/cirrus: Add native ARM64 persistent workers
Co-authored-by: Tim Ruffing <crypto@timruffing.de>
This commit is contained in:
parent
2262d0eaab
commit
fa4d6c76b6
45
.cirrus.yml
45
.cirrus.yml
@ -48,3 +48,48 @@ cat_logs_snippet: &CAT_LOGS
|
|||||||
- cat test_env.log || true
|
- cat test_env.log || true
|
||||||
cat_ci_env_script:
|
cat_ci_env_script:
|
||||||
- env
|
- 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