aboutsummaryrefslogtreecommitdiff
path: root/.cirrus.yml
diff options
context:
space:
mode:
authorMarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>2023-07-26 11:03:09 +0200
committerMarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>2023-08-01 17:33:33 +0200
commitfabaa85c017467336c7f94ddd83c44935957c919 (patch)
tree5c33c2397148c3457237cf14ca39d5c0773ba94e /.cirrus.yml
parente5a9f2fb62dc4db6cad21b2997d96a881ea64125 (diff)
downloadbitcoin-fabaa85c017467336c7f94ddd83c44935957c919.tar.xz
ci: Move ASan USDT to persistent_worker
Diffstat (limited to '.cirrus.yml')
-rw-r--r--.cirrus.yml35
1 files changed, 21 insertions, 14 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index 542bbb6ee6..093118bc17 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -14,8 +14,24 @@ cirrus_ephemeral_worker_template_env: &CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
persistent_worker_template_env: &PERSISTENT_WORKER_TEMPLATE_ENV
RESTART_CI_DOCKER_BEFORE_RUN: "1"
+# https://cirrus-ci.org/guide/persistent-workers/
+#
+# It is possible to select a specific persistent worker by label. Refer to the
+# Cirrus CI docs for more details.
+#
+# Generally, a persistent worker must run Ubuntu 23.04+ or Debian 12+.
+# Specifically,
+# - apt-get is required due to PACKAGE_MANAGER_INSTALL
+# - podman-docker-4.1+ is required due to the use of `podman` when
+# RESTART_CI_DOCKER_BEFORE_RUN is set and 4.1+ due to the bugfix in 4.1
+# (https://github.com/bitcoin/bitcoin/pull/21652)
+# - The ./ci/ depedencies should be installed:
+# apt update && apt install screen python3 bash podman-docker curl -y
+#
+# 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.
persistent_worker_template: &PERSISTENT_WORKER_TEMPLATE
- persistent_worker: {} # https://cirrus-ci.org/guide/persistent-workers/
+ persistent_worker: {} # Only use this if the task does not care about the type at all
# https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks
filter_template: &FILTER_TEMPLATE
@@ -258,21 +274,12 @@ task:
task:
name: '[ASan + LSan + UBSan + integer, no depends, USDT] [lunar]'
<< : *GLOBAL_TASK_TEMPLATE
- # We can't use a 'container' for the USDT interface tests as the CirrusCI
- # containers don't have privileges to hook into bitcoind. CirrusCI uses
- # Google Compute Engine instances: https://cirrus-ci.org/guide/custom-vms/
- # Images can be found here: https://cloud.google.com/compute/docs/images/os-details
- compute_engine_instance:
- image_project: ubuntu-os-cloud
- image: family/ubuntu-2304-amd64 # https://cirrus-ci.org/guide/custom-vms/#custom-compute-engine-vms
- cpu: 4
- disk: 100
- memory: 12G
+ persistent_worker:
+ labels:
+ type: lunar # Must use the lunar-specific worker (needed for USDT functional tests)
env:
- << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
- HOME: /root/ # Only needed for compute_engine_instance
+ << : *PERSISTENT_WORKER_TEMPLATE_ENV
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"
- MAKEJOBS: "-j4" # Avoid excessive memory use
task:
name: '[fuzzer,address,undefined,integer, no depends] [lunar]'