aboutsummaryrefslogtreecommitdiff
path: root/.cirrus.yml
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2023-08-09 11:46:01 +0200
committerfanquake <fanquake@gmail.com>2023-08-09 12:09:00 +0200
commit492257019d6d6e0f4051433e510502e8040fd6d2 (patch)
tree7ee41238994e0b2bbef088e11ffe5e841c729728 /.cirrus.yml
parentb565485c24c0feacae559a7f6f7b83d7516ca58d (diff)
parentfad0b67c212dcb8a16fcbda5a74acc959ed4e284 (diff)
downloadbitcoin-492257019d6d6e0f4051433e510502e8040fd6d2.tar.xz
Merge bitcoin/bitcoin#28087: ci: Use qemu-user through container engine
fad0b67c212dcb8a16fcbda5a74acc959ed4e284 ci: Use qemu-user through container engine (MarcoFalke) Pull request description: Currently the CI containers always run on the host architecture, and only wrap `bitcoind` into `qemu-user` when needed. This has many issues: * The `i386` tasks can not be run on non-x86 hosts. * `config.guess` isn't present when building the CI image, which is fine. But it prints a warning, see https://github.com/bitcoin/bitcoin/pull/27739#pullrequestreview-1446580353 * The python tests are run on the host architecture, making it harder to find architecture specific bugs. See for example https://github.com/bitcoin/bitcoin/pull/27529#issuecomment-1521387810 * All modern container engines support automatic dispatch to qemu-user, so it seems redundant to re-invent the wheel. Fix all issues by: * removing `HOST` from `ci/test/00_setup_env.sh`. * removing `QEMU_USER_CMD` and `ci/test/wrap-qemu.sh`. * removing `DPKG_ADD_ARCH` where possible, and pruning `PACKAGES` where possible. * specifying the architecture in `CI_IMAGE_NAME_TAG` to be used by the container engine. ACKs for top commit: fanquake: ACK fad0b67c212dcb8a16fcbda5a74acc959ed4e284 - this seems ok to me, and removes complexity from our CI system. Tree-SHA512: 85e79f9f570e292d70a629d112fd4a6e6217d96226a1b665ed13485f616d84720ad2126b7d4b22fc603049f72fa7f2163b56a6bc276319fcd8b0496304ea4157
Diffstat (limited to '.cirrus.yml')
-rw-r--r--.cirrus.yml15
1 files changed, 7 insertions, 8 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index 4a6e73ac85..eaaa2c471f 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -30,6 +30,7 @@ persistent_worker_template_env: &PERSISTENT_WORKER_TEMPLATE_ENV
#
# The following specific types should exist, with the following requirements:
# - lunar: For a machine running the Linux kernel shipped with Ubuntu Lunar 23.04. The machine is recommended to have 4 CPUs and 16 GB of memory.
+# - arm64: For an aarch64 machine, recommended to have 2 CPUs and 8 GB of memory.
persistent_worker_template: &PERSISTENT_WORKER_TEMPLATE
persistent_worker: {} # Only use this if the task does not care about the type at all
@@ -206,13 +207,11 @@ task:
task:
name: 'ARM [unit tests, no functional tests] [bullseye]'
<< : *GLOBAL_TASK_TEMPLATE
- container:
- docker_arguments:
- CI_IMAGE_NAME_TAG: debian:bullseye
- FILE_ENV: "./ci/test/00_setup_env_arm.sh"
- << : *CREDITS_TEMPLATE
+ persistent_worker:
+ labels:
+ type: arm64 # Use arm64 worker to sidestep qemu and avoid a slow CI: https://github.com/bitcoin/bitcoin/pull/28087#issuecomment-1649399453
env:
- << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
+ FILE_ENV: "./ci/test/00_setup_env_arm.sh"
task:
name: 'Win64 [unit tests, no gui tests, no boost::process, no functional tests] [jammy]'
@@ -230,7 +229,7 @@ task:
<< : *GLOBAL_TASK_TEMPLATE
container:
docker_arguments:
- CI_IMAGE_NAME_TAG: quay.io/centos/centos:stream9
+ CI_IMAGE_NAME_TAG: "quay.io/centos/amd64:stream9"
FILE_ENV: "./ci/test/00_setup_env_i686_centos.sh"
# For faster CI feedback, immediately schedule one task that runs all tests
<< : *CREDITS_TEMPLATE
@@ -304,7 +303,7 @@ task:
cpu: 4
memory: 16G # The default memory is too small, so double everything
docker_arguments:
- CI_IMAGE_NAME_TAG: ubuntu:focal
+ CI_IMAGE_NAME_TAG: "docker.io/amd64/ubuntu:focal"
FILE_ENV: "./ci/test/00_setup_env_i686_multiprocess.sh"
env:
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV