diff options
Diffstat (limited to '.cirrus.yml')
-rw-r--r-- | .cirrus.yml | 62 |
1 files changed, 46 insertions, 16 deletions
diff --git a/.cirrus.yml b/.cirrus.yml index 691582239e..3999e2dfd7 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -3,10 +3,19 @@ env: PACKAGE_MANAGER_INSTALL: "apt-get update && apt-get install -y" MAKEJOBS: "-j4" - DANGER_RUN_CI_ON_HOST: "1" # Containers will be discarded after the run, so there is no risk that the ci scripts modify the system 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_DIR: "/tmp/ccache_dir" + CCACHE_NOHASHDIR: "1" # Debug info might contain a stale path if the build dir changes, but this is fine + +cirrus_ephemeral_worker_template_env: &CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV + DANGER_RUN_CI_ON_HOST: "1" # Containers will be discarded after the run, so there is no risk that the ci scripts modify the system + +persistent_worker_template_env: &PERSISTENT_WORKER_TEMPLATE_ENV + RESTART_CI_DOCKER_BEFORE_RUN: "1" + +persistent_worker_template: &PERSISTENT_WORKER_TEMPLATE + persistent_worker: {} # https://cirrus-ci.org/guide/persistent-workers/ # https://cirrus-ci.org/guide/tips-and-tricks/#sharing-configuration-between-tasks base_template: &BASE_TEMPLATE @@ -28,15 +37,12 @@ global_task_template: &GLOBAL_TASK_TEMPLATE # Each project has 16 CPU in total, assign 2 to each container, so that 8 tasks run in parallel cpu: 2 memory: 8G # Set to 8GB to avoid OOM. https://cirrus-ci.org/guide/linux/#linux-containers - kvm: true # Use kvm to avoid spurious CI failures in the default virtualization cluster, see https://github.com/bitcoin/bitcoin/issues/20093 ccache_cache: folder: "/tmp/ccache_dir" depends_built_cache: - folder: "/tmp/cirrus-ci-build/depends/built" + folder: "depends/built" depends_sdk_cache: - folder: "/tmp/cirrus-ci-build/depends/sdk-sources" - depends_releases_cache: - folder: "/tmp/cirrus-ci-build/releases" + folder: "depends/sdk-sources" ci_script: - ./ci/test_run_all.sh @@ -72,6 +78,8 @@ task: << : *CREDITS_TEMPLATE lint_script: - ./ci/lint_run_all.sh + env: + << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV task: name: 'ARM [unit tests, no functional tests] [buster]' @@ -79,6 +87,7 @@ task: container: image: debian:buster env: + << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV FILE_ENV: "./ci/test/00_setup_env_arm.sh" task: @@ -87,6 +96,7 @@ task: container: image: ubuntu:focal env: + << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV FILE_ENV: "./ci/test/00_setup_env_win64.sh" task: @@ -95,17 +105,18 @@ task: container: image: centos:8 env: + << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV PACKAGE_MANAGER_INSTALL: "yum install -y" FILE_ENV: "./ci/test/00_setup_env_i686_centos.sh" task: name: '[previous releases, uses qt5 dev package and some depends packages] [unsigned char] [bionic]' - # For faster CI feedback, immediately schedule a task that compiles most modules - << : *CREDITS_TEMPLATE << : *GLOBAL_TASK_TEMPLATE - container: - image: ubuntu:bionic + depends_releases_cache: + folder: "releases" + << : *PERSISTENT_WORKER_TEMPLATE env: + << : *PERSISTENT_WORKER_TEMPLATE_ENV FILE_ENV: "./ci/test/00_setup_env_native_qt5.sh" task: @@ -113,9 +124,10 @@ task: << : *GLOBAL_TASK_TEMPLATE container: image: ubuntu:focal - cpu: 4 # Double CPU and increase Memory to avoid timeout + cpu: 6 # Increase CPU and Memory to avoid timeout memory: 24G env: + << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV MAKEJOBS: "-j8" FILE_ENV: "./ci/test/00_setup_env_native_tsan.sh" @@ -125,6 +137,7 @@ task: container: image: ubuntu:focal env: + << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV FILE_ENV: "./ci/test/00_setup_env_native_msan.sh" task: @@ -133,6 +146,7 @@ task: container: image: ubuntu:focal env: + << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV FILE_ENV: "./ci/test/00_setup_env_native_asan.sh" task: @@ -141,6 +155,7 @@ task: container: image: ubuntu:focal env: + << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh" task: @@ -149,6 +164,7 @@ task: container: image: ubuntu:focal env: + << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV FILE_ENV: "./ci/test/00_setup_env_native_multiprocess.sh" task: @@ -157,6 +173,7 @@ task: container: image: ubuntu:bionic env: + << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV FILE_ENV: "./ci/test/00_setup_env_native_nowallet.sh" task: @@ -165,18 +182,31 @@ task: container: image: ubuntu:focal env: + << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV FILE_ENV: "./ci/test/00_setup_env_mac.sh" task: - name: 'macOS 10.15 native [gui] [no depends]' - macos_brew_addon_script: - - brew install boost libevent berkeley-db4 qt miniupnpc libnatpmp ccache zeromq qrencode sqlite libtool automake pkg-config gnu-getopt + name: 'macOS 11 native [gui] [no depends]' + brew_install_script: + - brew update + - brew install boost libevent berkeley-db4 qt@5 miniupnpc libnatpmp ccache zeromq qrencode sqlite libtool automake pkg-config gnu-getopt << : *GLOBAL_TASK_TEMPLATE osx_instance: # Use latest image, but hardcode version to avoid silent upgrades (and breaks) - image: catalina-xcode-12.1 # https://cirrus-ci.org/guide/macOS + image: big-sur-xcode-12.4 # https://cirrus-ci.org/guide/macOS env: - DANGER_RUN_CI_ON_HOST: "true" + << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV CI_USE_APT_INSTALL: "no" PACKAGE_MANAGER_INSTALL: "echo" # Nothing to do FILE_ENV: "./ci/test/00_setup_env_mac_host.sh" + +task: + name: 'ARM64 Android APK [focal]' + depends_sources_cache: + folder: "depends/sources" + << : *GLOBAL_TASK_TEMPLATE + container: + image: ubuntu:focal + env: + << : *CIRRUS_EPHEMERAL_WORKER_TEMPLATE_ENV + FILE_ENV: "./ci/test/00_setup_env_android.sh" |