209 lines
6.0 KiB
YAML
209 lines
6.0 KiB
YAML
##################################################################################
|
|
# 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
|