################################################################################## # Please note: # # # # After updating this file, please also update CI column of the support matrix # # at https://github.com/zeek/zeek/wiki/Zeek-Operating-System-Support-Matrix # ################################################################################## cpus: &CPUS 4 memory: &MEMORY 12GB config: &CONFIG --enable-static --prefix=$CIRRUS_WORKING_DIR/install resources_template: &RESOURCES_TEMPLATE cpu: *CPUS memory: *MEMORY # For greediness, see https://medium.com/cirruslabs/introducing-greedy-container-instances-29aad06dc2b4 greedy: true macos_environment: &MACOS_ENVIRONMENT # https://medium.com/cirruslabs/new-macos-task-execution-architecture-for-cirrus-ci-604250627c94 # suggests we can go faster here: env: ZEEK_CI_CPUS: 12 ZEEK_CI_BTEST_JOBS: 12 # No permission to write to default location of /zeek CIRRUS_WORKING_DIR: /tmp/binpac freebsd_resources_template: &FREEBSD_RESOURCES_TEMPLATE cpu: 8 # Not allowed to request less than 8GB for an 8 CPU FreeBSD VM. memory: 8GB # For greediness, see https://medium.com/cirruslabs/introducing-greedy-container-instances-29aad06dc2b4 greedy: true freebsd_environment: &FREEBSD_ENVIRONMENT env: ZEEK_CI_CPUS: 8 sanitizers_resource_template: &SANITIZERS_RESOURCE_TEMPLATE cpu: 4 # Sanitizers uses a lot more memory than a typical config. memory: 12GB # For greediness, see https://medium.com/cirruslabs/introducing-greedy-container-instances-29aad06dc2b4 greedy: true branch_whitelist: &BRANCH_WHITELIST # Rules for skipping builds: # - Don't do darwin builds on zeek-security repo because they use up a ton of compute credits. # - Always build PRs, but not if they come from dependabot # - Always build master and release/* builds from the main repo only_if: > ( $CIRRUS_PR != '' && $CIRRUS_BRANCH !=~ 'dependabot/.*' ) || ( $CIRRUS_REPO_NAME == 'binpac' && ( $CIRRUS_BRANCH == 'master' || $CIRRUS_BRANCH =~ 'release/.*' ) ) skip_task_on_pr: &SKIP_TASK_ON_PR # Skip this task on PRs if it does not have the fullci label, # it continues to run for direct pushes to master/release. skip: > ($CIRRUS_PR != '' && $CIRRUS_PR_LABELS !=~ '.*fullci.*') ci_template: &CI_TEMPLATE << : *BRANCH_WHITELIST # Default timeout is 60 minutes, Cirrus hard limit is 120 minutes for free # tasks, so may as well ask for full time. timeout_in: 120m sync_submodules_script: git submodule update --recursive --init build_script: ./ci/build.sh env: CIRRUS_WORKING_DIR: /binpac ZEEK_CI_CPUS: *CPUS ZEEK_CI_CONFIGURE_FLAGS: *CONFIG # Linux EOL timelines: https://linuxlifecycle.com/ # Fedora (~13 months): https://fedoraproject.org/wiki/Fedora_Release_Life_Cycle fedora41_task: container: # Fedora 41 EOL: Around Nov 2025 dockerfile: ci/fedora-41/Dockerfile << : *RESOURCES_TEMPLATE << : *CI_TEMPLATE << : *SKIP_TASK_ON_PR fedora40_task: container: # Fedora 40 EOL: Around May 2025 dockerfile: ci/fedora-40/Dockerfile << : *RESOURCES_TEMPLATE << : *CI_TEMPLATE centosstream9_task: container: # Stream 9 EOL: Around Dec 2027 dockerfile: ci/centos-stream-9/Dockerfile << : *RESOURCES_TEMPLATE << : *CI_TEMPLATE debian12_task: container: # Debian 12 EOL: TBD dockerfile: ci/debian-12/Dockerfile << : *CI_TEMPLATE debian11_task: container: # Debian 11 EOL: June 2026 dockerfile: ci/debian-11/Dockerfile << : *RESOURCES_TEMPLATE << : *CI_TEMPLATE << : *SKIP_TASK_ON_PR debian11_static_task: container: # Just use a recent/common distro to run a static compile test. # Debian 11 EOL: June 2026 dockerfile: ci/debian-11/Dockerfile << : *RESOURCES_TEMPLATE << : *CI_TEMPLATE << : *SKIP_TASK_ON_PR opensuse_leap_15_6_task: container: # Opensuse Leap 15.6 EOL: ~Dec 2025 dockerfile: ci/opensuse-leap-15.6/Dockerfile << : *RESOURCES_TEMPLATE << : *CI_TEMPLATE opensuse_tumbleweed_task: container: # Opensuse Tumbleweed has no EOL dockerfile: ci/opensuse-tumbleweed/Dockerfile << : *RESOURCES_TEMPLATE << : *CI_TEMPLATE << : *SKIP_TASK_ON_PR ubuntu24_10_task: container: # Ubuntu 24.10 EOL: 2025-07-30 dockerfile: ci/ubuntu-24.10/Dockerfile << : *RESOURCES_TEMPLATE << : *CI_TEMPLATE ubuntu24_task: container: # Ubuntu 24.04 EOL: Jun 2029 dockerfile: ci/ubuntu-24.04/Dockerfile << : *RESOURCES_TEMPLATE << : *CI_TEMPLATE ubuntu22_task: container: # Ubuntu 22.04 EOL: April 2027 dockerfile: ci/ubuntu-22.04/Dockerfile << : *RESOURCES_TEMPLATE << : *CI_TEMPLATE alpine_task: container: # Alpine releases typically happen every 6 months w/ support for 2 years. # The Dockerfile simply tracks latest Alpine release and shouldn't # generally need updating based on particular Alpine release timelines. dockerfile: ci/alpine/Dockerfile << : *RESOURCES_TEMPLATE << : *CI_TEMPLATE # Cirrus only supports the following macos runner currently, selecting # anything else automatically upgrades to this one. # # ghcr.io/cirruslabs/macos-runner:sonoma # # See also: https://cirrus-ci.org/guide/macOS/ macos_sonoma_task: macos_instance: image: ghcr.io/cirruslabs/macos-runner:sonoma prepare_script: ./ci/macos/prepare.sh << : *CI_TEMPLATE << : *MACOS_ENVIRONMENT # FreeBSD EOL timelines: https://www.freebsd.org/security/#sup freebsd14_task: freebsd_instance: # FreeBSD 14 EOL: Nov 30 2028 image_family: freebsd-14-2 << : *FREEBSD_RESOURCES_TEMPLATE prepare_script: ./ci/freebsd/prepare.sh << : *CI_TEMPLATE << : *FREEBSD_ENVIRONMENT freebsd13_task: freebsd_instance: # FreeBSD 13 EOL: January 31, 2026 image_family: freebsd-13-4 << : *FREEBSD_RESOURCES_TEMPLATE prepare_script: ./ci/freebsd/prepare.sh << : *CI_TEMPLATE << : *SKIP_TASK_ON_PR << : *FREEBSD_ENVIRONMENT