diff --git a/.cirrus.yml b/.cirrus.yml index 83a9bb75ed441..89d81e705a556 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -69,61 +69,60 @@ compute_credits_template: &CREDITS_TEMPLATE # Only use credits for pull requests to the main repo use_compute_credits: $CIRRUS_REPO_FULL_NAME == 'nav-io/navio-core' && $CIRRUS_PR != "" -# task: -# name: 'lint' -# << : *BASE_TEMPLATE -# container: -# image: debian:bookworm -# cpu: 1 -# memory: 1G -# # For faster CI feedback, immediately schedule the linters -# << : *CREDITS_TEMPLATE -# test_runner_cache: -# folder: "/lint_test_runner" -# fingerprint_script: echo $CIRRUS_TASK_NAME $(git rev-parse HEAD:test/lint/test_runner) -# python_cache: -# folder: "/python_build" -# fingerprint_script: cat .python-version /etc/os-release -# unshallow_script: -# - git fetch --unshallow --no-tags -# lint_script: -# - ./ci/lint_run_all.sh +task: + name: 'lint' + << : *BASE_TEMPLATE + persistent_worker: + labels: + type: small + # For faster CI feedback, immediately schedule the linters + << : *CREDITS_TEMPLATE + test_runner_cache: + folder: "/lint_test_runner" + fingerprint_script: echo $CIRRUS_TASK_NAME $(git rev-parse HEAD:test/lint/test_runner) + python_cache: + folder: "/python_build" + fingerprint_script: cat .python-version /etc/os-release + unshallow_script: + - git fetch --unshallow --no-tags + lint_script: + - ./ci/lint_run_all.sh -# task: -# name: 'tidy' -# << : *GLOBAL_TASK_TEMPLATE -# persistent_worker: -# labels: -# type: medium -# env: -# FILE_ENV: "./ci/test/00_setup_env_native_tidy.sh" -# -# task: -# name: 'ARM, unit tests, no functional tests' -# << : *GLOBAL_TASK_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: -# FILE_ENV: "./ci/test/00_setup_env_arm.sh" -# -# task: -# name: 'Win64, unit tests, no functional tests' -# << : *GLOBAL_TASK_TEMPLATE -# persistent_worker: -# labels: -# type: small -# env: -# FILE_ENV: "./ci/test/00_setup_env_win64.sh" -# -# task: -# name: '32-bit CentOS, dash' -# << : *GLOBAL_TASK_TEMPLATE -# persistent_worker: -# labels: -# type: small -# env: -# FILE_ENV: "./ci/test/00_setup_env_i686_centos.sh" +task: + name: 'tidy' + << : *GLOBAL_TASK_TEMPLATE + persistent_worker: + labels: + type: medium + env: + FILE_ENV: "./ci/test/00_setup_env_native_tidy.sh" + +task: + name: 'ARM, unit tests, no functional tests' + << : *GLOBAL_TASK_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: + FILE_ENV: "./ci/test/00_setup_env_arm.sh" + +task: + name: 'Win64, unit tests, no functional tests' + << : *GLOBAL_TASK_TEMPLATE + persistent_worker: + labels: + type: small + env: + FILE_ENV: "./ci/test/00_setup_env_win64.sh" + +task: + name: '32-bit CentOS, dash' + << : *GLOBAL_TASK_TEMPLATE + persistent_worker: + labels: + type: small + env: + FILE_ENV: "./ci/test/00_setup_env_i686_centos.sh" # task: # name: 'previous releases, depends DEBUG' @@ -134,82 +133,80 @@ compute_credits_template: &CREDITS_TEMPLATE # env: # FILE_ENV: "./ci/test/00_setup_env_native_previous_releases.sh" -# task: -# name: 'TSan, depends' -# << : *GLOBAL_TASK_TEMPLATE -# persistent_worker: -# labels: -# type: medium -# env: -# FILE_ENV: "./ci/test/00_setup_env_native_tsan.sh" -# -# task: -# name: 'MSan, depends' -# << : *GLOBAL_TASK_TEMPLATE -# persistent_worker: -# labels: -# type: medium -# timeout_in: 500m # Use longer timeout for the *rare* case where a full build (llvm + msan + depends + ...) needs to be done. -# env: -# FILE_ENV: "./ci/test/00_setup_env_native_msan.sh" -# -# task: -# name: 'ASan + LSan + UBSan + integer, no depends, USDT' -# enable_bpfcc_script: -# # In the image build step, no external environment variables are available, -# # so any settings will need to be written to the settings env file: -# - sed -i "s|\${CIRRUS_CI}|true|g" ./ci/test/00_setup_env_native_asan.sh -# << : *GLOBAL_TASK_TEMPLATE -# persistent_worker: -# labels: -# type: noble # Must use this specific worker (needed for USDT functional tests) -# timeout_in: 300m # Use longer timeout for the *rare* case where a full build (llvm + msan + depends + ...) needs to be done. -# env: -# FILE_ENV: "./ci/test/00_setup_env_native_asan.sh" +task: + name: 'TSan, depends' + << : *GLOBAL_TASK_TEMPLATE + persistent_worker: + labels: + type: medium + env: + FILE_ENV: "./ci/test/00_setup_env_native_tsan.sh" task: - name: 'fuzzer,address,undefined,integer, no depends' - << : *BASE_TEMPLATE - << : *MAIN_TEMPLATE + name: 'MSan, depends' + << : *GLOBAL_TASK_TEMPLATE + persistent_worker: + labels: + type: medium + timeout_in: 500m # Use longer timeout for the *rare* case where a full build (llvm + msan + depends + ...) needs to be done. + env: + FILE_ENV: "./ci/test/00_setup_env_native_msan.sh" +task: + name: 'ASan + LSan + UBSan + integer, no depends, USDT' + enable_bpfcc_script: + # In the image build step, no external environment variables are available, + # so any settings will need to be written to the settings env file: + - sed -i "s|\${CIRRUS_CI}|true|g" ./ci/test/00_setup_env_native_asan.sh + << : *GLOBAL_TASK_TEMPLATE + persistent_worker: + labels: + type: noble # Must use this specific worker (needed for USDT functional tests) + timeout_in: 300m # Use longer timeout for the *rare* case where a full build (llvm + msan + depends + ...) needs to be done. + env: + FILE_ENV: "./ci/test/00_setup_env_native_asan.sh" + +task: + name: 'fuzzer,address,undefined,integer, no depends' + << : *GLOBAL_TASK_TEMPLATE persistent_worker: labels: type: medium env: FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh" -# task: -# name: 'multiprocess, i686, DEBUG' -# << : *GLOBAL_TASK_TEMPLATE -# persistent_worker: -# labels: -# type: medium -# env: -# FILE_ENV: "./ci/test/00_setup_env_i686_multiprocess.sh" -# -# task: -# name: 'no wallet, libblsct' -# << : *GLOBAL_TASK_TEMPLATE -# persistent_worker: -# labels: -# type: small -# env: -# FILE_ENV: "./ci/test/00_setup_env_native_libblsct_only.sh" -# -# task: -# name: 'no wallet, libnaviokernel' -# << : *GLOBAL_TASK_TEMPLATE -# persistent_worker: -# labels: -# type: small -# env: -# FILE_ENV: "./ci/test/00_setup_env_native_nowallet_libnaviokernel.sh" -# -# task: -# name: 'macOS-cross, no tests' -# << : *GLOBAL_TASK_TEMPLATE -# persistent_worker: -# labels: -# type: small -# env: -# FILE_ENV: "./ci/test/00_setup_env_mac_cross.sh" +task: + name: 'multiprocess, i686, DEBUG' + << : *GLOBAL_TASK_TEMPLATE + persistent_worker: + labels: + type: medium + env: + FILE_ENV: "./ci/test/00_setup_env_i686_multiprocess.sh" + +task: + name: 'no wallet, libblsct' + << : *GLOBAL_TASK_TEMPLATE + persistent_worker: + labels: + type: small + env: + FILE_ENV: "./ci/test/00_setup_env_native_libblsct_only.sh" + +task: + name: 'no wallet, libnaviokernel' + << : *GLOBAL_TASK_TEMPLATE + persistent_worker: + labels: + type: small + env: + FILE_ENV: "./ci/test/00_setup_env_native_nowallet_libnaviokernel.sh" + +task: + name: 'macOS-cross, no tests' + << : *GLOBAL_TASK_TEMPLATE + persistent_worker: + labels: + type: small + env: + FILE_ENV: "./ci/test/00_setup_env_mac_cross.sh"