ci: Use Cirrus "greedy" flag to use idle CPU time when available

MAKEJOBS limited for MSan to avoid excessive RAM usage
This commit is contained in:
Luke Dashjr 2021-12-16 03:26:02 +00:00
parent 8c0bd871fc
commit cfeb1942bc

View file

@ -1,6 +1,6 @@
env: # Global defaults env: # Global defaults
PACKAGE_MANAGER_INSTALL: "apt-get update && apt-get install -y" PACKAGE_MANAGER_INSTALL: "apt-get update && apt-get install -y"
MAKEJOBS: "-j4" MAKEJOBS: "-j10"
TEST_RUNNER_PORT_MIN: "14000" # Must be larger than 12321, which is used for the http cache. See https://cirrus-ci.org/guide/writing-tasks/#http-cache TEST_RUNNER_PORT_MIN: "14000" # Must be larger than 12321, which is used for the http cache. See https://cirrus-ci.org/guide/writing-tasks/#http-cache
CCACHE_SIZE: "200M" CCACHE_SIZE: "200M"
CCACHE_DIR: "/tmp/ccache_dir" CCACHE_DIR: "/tmp/ccache_dir"
@ -38,6 +38,7 @@ main_template: &MAIN_TEMPLATE
# https://cirrus-ci.org/faq/#are-there-any-limits # https://cirrus-ci.org/faq/#are-there-any-limits
# Each project has 16 CPU in total, assign 2 to each container, so that 8 tasks run in parallel # Each project has 16 CPU in total, assign 2 to each container, so that 8 tasks run in parallel
cpu: 2 cpu: 2
greedy: true
memory: 8G # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-containers memory: 8G # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-containers
ccache_cache: ccache_cache:
folder: "/tmp/ccache_dir" folder: "/tmp/ccache_dir"
@ -212,7 +213,6 @@ task:
memory: 24G memory: 24G
env: env:
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
MAKEJOBS: "-j8"
FILE_ENV: "./ci/test/00_setup_env_native_tsan.sh" FILE_ENV: "./ci/test/00_setup_env_native_tsan.sh"
task: task:
@ -223,6 +223,7 @@ task:
env: env:
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
FILE_ENV: "./ci/test/00_setup_env_native_msan.sh" FILE_ENV: "./ci/test/00_setup_env_native_msan.sh"
MAKEJOBS: "-j4" # Avoid excessive memory use due to MSan
task: task:
name: '[ASan + LSan + UBSan + integer, no depends] [jammy]' name: '[ASan + LSan + UBSan + integer, no depends] [jammy]'
@ -232,6 +233,7 @@ task:
env: env:
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh" FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"
MAKEJOBS: "-j4" # Avoid excessive memory use
task: task:
name: '[fuzzer,address,undefined,integer, no depends] [focal]' name: '[fuzzer,address,undefined,integer, no depends] [focal]'
@ -243,7 +245,6 @@ task:
memory: 16G memory: 16G
env: env:
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
MAKEJOBS: "-j8"
FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh" FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh"
task: task:
@ -255,7 +256,6 @@ task:
memory: 16G # The default memory is sometimes just a bit too small, so double everything memory: 16G # The default memory is sometimes just a bit too small, so double everything
env: env:
<< : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV
MAKEJOBS: "-j8"
FILE_ENV: "./ci/test/00_setup_env_i686_multiprocess.sh" FILE_ENV: "./ci/test/00_setup_env_i686_multiprocess.sh"
task: task: