@@ -14,8 +14,24 @@ cirrus_ephemeral_worker_template_env: &CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
1414persistent_worker_template_env : &PERSISTENT_WORKER_TEMPLATE_ENV
1515 RESTART_CI_DOCKER_BEFORE_RUN : " 1"
1616
17+ # https://cirrus-ci.org/guide/persistent-workers/
18+ #
19+ # It is possible to select a specific persistent worker by label. Refer to the
20+ # Cirrus CI docs for more details.
21+ #
22+ # Generally, a persistent worker must run Ubuntu 23.04+ or Debian 12+.
23+ # Specifically,
24+ # - apt-get is required due to PACKAGE_MANAGER_INSTALL
25+ # - podman-docker-4.1+ is required due to the use of `podman` when
26+ # RESTART_CI_DOCKER_BEFORE_RUN is set and 4.1+ due to the bugfix in 4.1
27+ # (https://github.com/bitcoin/bitcoin/pull/21652)
28+ # - The ./ci/ depedencies should be installed:
29+ # apt update && apt install screen python3 bash podman-docker curl -y
30+ #
31+ # The following specific types should exist, with the following requirements:
32+ # - 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.
1733persistent_worker_template : &PERSISTENT_WORKER_TEMPLATE
18- persistent_worker : {} # https://cirrus-ci.org/guide/persistent-workers/
34+ persistent_worker : {} # Only use this if the task does not care about the type at all
1935
2036# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
2137filter_template : &FILTER_TEMPLATE
@@ -258,21 +274,12 @@ task:
258274task :
259275 name : ' [ASan + LSan + UBSan + integer, no depends, USDT] [lunar]'
260276 << : *GLOBAL_TASK_TEMPLATE
261- # We can't use a 'container' for the USDT interface tests as the CirrusCI
262- # containers don't have privileges to hook into bitcoind. CirrusCI uses
263- # Google Compute Engine instances: https://cirrus-ci.org/guide/custom-vms/
264- # Images can be found here: https://cloud.google.com/compute/docs/images/os-details
265- compute_engine_instance :
266- image_project : ubuntu-os-cloud
267- image : family/ubuntu-2304-amd64 # https://cirrus-ci.org/guide/custom-vms/#custom-compute-engine-vms
268- cpu : 4
269- disk : 100
270- memory : 12G
277+ persistent_worker :
278+ labels :
279+ type : lunar # Must use the lunar-specific worker (needed for USDT functional tests)
271280 env :
272- << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
273- HOME : /root/ # Only needed for compute_engine_instance
281+ << : *PERSISTENT_WORKER_TEMPLATE_ENV
274282 FILE_ENV : " ./ci/test/00_setup_env_native_asan.sh"
275- MAKEJOBS : " -j4" # Avoid excessive memory use
276283
277284task :
278285 name : ' [fuzzer,address,undefined,integer, no depends] [lunar]'
0 commit comments