zeek/auxil/spicy/.cirrus.yml
Patrick Kelley 8fd444092b initial
2025-05-07 15:35:15 -04:00

683 lines
16 KiB
YAML

# Copyright (c) 2020-now by the Zeek Project. See LICENSE for details.
environment:
CCACHE_BASEDIR: $CIRRUS_WORKING_DIR
# Enforce sequential JIT'ing of files for controlled memory usage.
HILTI_JIT_SEQUENTIAL: 1
# Images for macOS. Currently Cirrus supports only macos Sonoma and would
# automatically and silently upgrade any other macos image (e.g., historic
# ones) to Sonoma.
IMAGE_MACOS_SONOMA: ghcr.io/cirruslabs/macos-runner:sonoma
# Branches to use for spicy-plugin and spicy-analyzers tests.
ZEEK_SPICY_BRANCH: main
ZEEK_ANALYZERS_BRANCH: main
# Cache HILTI C++ compilation.
HILTI_CXX_COMPILER_LAUNCHER: ccache
CCACHE_COMPRESS: "1"
CCACHE_MAXSIZE: "2G"
lint_task:
skip: $CIRRUS_PR == ''
container:
dockerfile: ci/Dockerfile
cpu: 4
memory: 12G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
LD_LIBRARY_PATH: /usr/lib/llvm-19/lib/clang/19/lib/linux/
update_git_script:
- git submodule update --recursive --init
configure_script: ./ci/run-ci -b build configure debug --cxx-compiler clang++-19 --clang-tidy `which clang-tidy-19`
build_script: ./ci/run-ci -b build build
test_code_script: ./ci/run-ci -b build test-code
on_failure:
ci_artifacts:
path: artifacts
junit_artifacts:
path: artifacts/diag.xml
type: text/xml
format: junit
clang_artifacts:
path: build/ci
clang19_ubuntu_debug_task:
container:
dockerfile: ci/Dockerfile
cpu: 4
memory: 12G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
LD_LIBRARY_PATH: /usr/lib/llvm-19/lib/clang/19/lib/linux/
update_git_script:
- git submodule update --recursive --init
configure_script: ./ci/run-ci -b build configure debug --cxx-compiler clang++-19
build_script: ./ci/run-ci -b build build
test_build_script: ./ci/run-ci -b build test-build
install_script: ./ci/run-ci -b build install
packaging_script:
- ninja -C build package
packages_artifacts:
path: build/spicy*.tar.gz
type: application/gzip
on_failure:
ci_artifacts:
path: artifacts
junit_artifacts:
path: artifacts/diag.xml
type: text/xml
format: junit
clang_artifacts:
path: build/ci
clang19_lts_ubuntu_release_task:
container:
dockerfile: ci/Dockerfile
cpu: 4
memory: 8G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
update_git_script:
- git submodule update --recursive --init
configure_script: ./ci/run-ci -b build configure release --cxx-compiler clang++-19
build_script: ./ci/run-ci -b build build
test_build_script: ./ci/run-ci -b build test-build
install_script: ./ci/run-ci -b build install
cleanup_script: ./ci/run-ci -b build cleanup
test_install_script: ./ci/run-ci -b build test-install
packaging_script:
- ninja -C build package
packages_artifacts:
path: build/spicy*.tar.gz
type: application/gzip
on_failure:
ci_artifacts:
path: artifacts
junit_artifacts:
path: artifacts/diag.xml
type: text/xml
format: junit
clang19_lts_ubuntu_release_static_task:
container:
dockerfile: ci/Dockerfile
cpu: 4
memory: 8G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
update_git_script:
- git submodule update --recursive --init
configure_script: ./ci/run-ci -b build configure release --cxx-compiler clang++-19
build_script: ./ci/run-ci -b build build
install_script: ./ci/run-ci -b build install
cleanup_script: ./ci/run-ci -b build cleanup
test_install_script: ./ci/run-ci -b build test-install
on_failure:
ci_artifacts:
path: artifacts
junit_artifacts:
path: artifacts/diag.xml
type: text/xml
format: junit
no_toolchain_task:
container:
dockerfile: ci/Dockerfile
cpu: 4
memory: 12G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
update_git_script:
- git submodule update --recursive --init
configure_script: ./ci/run-ci -b build configure release --build-toolchain no
build_script: ./ci/run-ci -b build build
install_script: ./ci/run-ci -b build install
packaging_script:
- ninja -C build package
packages_artifacts:
path: build/spicy*.tar.gz
type: application/gzip
on_failure:
ci_artifacts:
path: artifacts
junit_artifacts:
path: artifacts/diag.xml
type: text/xml
format: junit
validate_release_tarball_task:
skip: $CIRRUS_BRANCH != 'main' && $CIRRUS_TAG == ''
container:
dockerfile: ci/Dockerfile
cpu: 4
memory: 12G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
update_git_script:
- git submodule update --recursive --init
create_tarball_script:
- scripts/make-tarball.sh
unpack_script:
- mkdir /tmp/spicy-tarball
- tar xf spicy*.tar.gz -C /tmp/spicy-tarball
configure_script:
- cd /tmp/spicy-tarball/spicy-*
- ./configure --generator=Ninja --enable-ccache --prefix=/opt/spicy --enable-werror --with-hilti-compiler-launcher=ccache
build_script:
- cd /tmp/spicy-tarball/spicy-*
- ninja -j3 -C build
test_build_script:
- cd /tmp/spicy-tarball/spicy-*
- make -C tests
sonoma_task:
skip: $CIRRUS_BRANCH != 'main' && $CIRRUS_TAG == ''
macos_instance:
image: $IMAGE_MACOS_SONOMA
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
update_git_script:
- git submodule update --recursive --init
install_dependencies_script:
- brew install bison cmake flex ninja ccache
- python3 -mvenv /tmp/btest.venv && /tmp/btest.venv/bin/pip install btest
configure_script:
- ./configure --with-flex=$(brew --prefix flex) --with-bison=$(brew --prefix bison) --generator=Ninja --enable-ccache --build-type=Debug
build_script:
- ninja -C build
test_script:
- (source /tmp/btest.venv/bin/activate && btest -djc tests/btest.cfg)
homebrew_sonoma_task:
skip: $CIRRUS_BRANCH != 'main' && $CIRRUS_TAG == ''
macos_instance:
image: $IMAGE_MACOS_SONOMA
script:
- brew tap zeek/zeek
- brew install spicy --HEAD
- brew test spicy
docker_alpine_3_18_task:
container:
dockerfile: docker/Dockerfile.alpine-3.18
cpu: 4
memory: 14G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
update_git_script:
- git submodule update --recursive --init
configure_script:
- LDFLAGS="-lucontext" ./configure --generator=Ninja --enable-ccache --prefix=/opt/spicy --enable-werror
build_script:
- ninja -j4 -C build install
test_install_script:
- SPICY_INSTALLATION_DIRECTORY=/opt/spicy make -C tests test-install
packaging_script:
- ninja -C build package
packages_artifacts:
path: build/spicy*.tar.gz
type: application/gzip
docker_centos_stream_9_task:
container:
dockerfile: docker/Dockerfile.centos-stream-9
cpu: 4
memory: 14G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
update_git_script:
- git submodule update --recursive --init
configure_script:
- ./configure --generator=Ninja --enable-ccache --prefix=/opt/spicy --enable-werror
build_script:
- ninja -j4 -C build check all package
- cp build/spicy*.rpm .
- rpm -i ./spicy*.rpm
- rm -rf build
test_install_script:
- SPICY_INSTALLATION_DIRECTORY=/opt/spicy make -C tests test-install
packages_artifacts:
path: ./spicy*.{deb,rpm}
type: application/gzip
docker_debian11_task:
container:
dockerfile: docker/Dockerfile.debian-11
cpu: 4
memory: 12G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
update_git_script:
- git submodule update --recursive --init
configure_script:
- ./configure --generator=Ninja --enable-ccache --prefix=/opt/spicy --enable-werror
build_script:
- ninja -j4 -C build check all package
- cp build/spicy*.deb .
- dpkg --install ./spicy*.deb
- rm -rf build
test_install_script:
- SPICY_INSTALLATION_DIRECTORY=/opt/spicy make -C tests test-install
packages_artifacts:
path: ./spicy*.{deb,rpm}
type: application/gzip
docker_debian12_task:
container:
dockerfile: docker/Dockerfile.debian-12
cpu: 4
memory: 12G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
update_git_script:
- git submodule update --recursive --init
configure_script:
- ./configure --generator=Ninja --enable-ccache --prefix=/opt/spicy --enable-werror
build_script:
- ninja -j4 -C build check all package
- cp build/spicy*.deb .
- dpkg --install ./spicy*.deb
- rm -rf build
test_install_script:
- SPICY_INSTALLATION_DIRECTORY=/opt/spicy make -C tests test-install
packages_artifacts:
path: ./spicy*.{deb,rpm}
type: application/gzip
docker_ubuntu22_task:
skip: $CIRRUS_BRANCH != 'main' && $CIRRUS_TAG == ''
container:
dockerfile: docker/Dockerfile.ubuntu-22
cpu: 4
memory: 12G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
CCACHE_COMPRESS: 1
update_git_script:
- git submodule update --recursive --init
configure_script:
- ./configure --generator=Ninja --enable-ccache --prefix=/opt/spicy --enable-werror
build_script:
- ninja -j4 -C build check all package
- cp build/spicy*.deb .
- dpkg --install ./spicy*.deb
- rm -rf build
test_install_script:
- SPICY_INSTALLATION_DIRECTORY=/opt/spicy make -C tests test-install
packages_artifacts:
path: ./spicy*.{deb,rpm}
type: application/gzip
docker_ubuntu24_task:
skip: $CIRRUS_BRANCH != 'main' && $CIRRUS_TAG == ''
container:
dockerfile: docker/Dockerfile.ubuntu-24
cpu: 4
memory: 12G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
CCACHE_COMPRESS: 1
update_git_script:
- git submodule update --recursive --init
configure_script:
- ./configure --generator=Ninja --enable-ccache --prefix=/opt/spicy --enable-werror
build_script:
- ninja -j4 -C build check all package
- cp build/spicy*.deb .
- dpkg --install ./spicy*.deb
- rm -rf build
test_install_script:
- SPICY_INSTALLATION_DIRECTORY=/opt/spicy make -C tests test-install
packages_artifacts:
path: ./spicy*.{deb,rpm}
type: application/gzip
docker_fedora40_task:
skip: $CIRRUS_BRANCH != 'main' && $CIRRUS_TAG == ''
container:
dockerfile: docker/Dockerfile.fedora-40
cpu: 4
memory: 12G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
CCACHE_COMPRESS: 1
update_git_script:
- git submodule update --recursive --init
configure_script:
- ./configure --generator=Ninja --enable-ccache --prefix=/opt/spicy --enable-werror
build_script:
- ninja -j4 -C build check all package
- cp build/spicy*.rpm .
- rpm -i ./spicy*.rpm
- rm -rf build
test_install_script:
- SPICY_INSTALLATION_DIRECTORY=/opt/spicy make -C tests test-install
packages_artifacts:
path: ./spicy*.{deb,rpm}
type: application/gzip
docker_fedora41_task:
skip: $CIRRUS_BRANCH != 'main' && $CIRRUS_TAG == ''
container:
dockerfile: docker/Dockerfile.fedora-41
cpu: 4
memory: 12G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
CCACHE_COMPRESS: 1
update_git_script:
- git submodule update --recursive --init
configure_script:
- ./configure --generator=Ninja --enable-ccache --prefix=/opt/spicy --enable-werror
build_script:
- ninja -j4 -C build check all package
- cp build/spicy*.rpm .
- rpm -i ./spicy*.rpm
- rm -rf build
test_install_script:
- SPICY_INSTALLATION_DIRECTORY=/opt/spicy make -C tests test-install
packages_artifacts:
path: ./spicy*.{deb,rpm}
type: application/gzip
docker_opensuse15_6_task:
skip: $CIRRUS_BRANCH != 'main' && $CIRRUS_TAG == ''
container:
dockerfile: docker/Dockerfile.opensuse-15.6
cpu: 4
memory: 12G
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
CCACHE_COMPRESS: 1
update_git_script:
- git submodule update --recursive --init
configure_script:
- ./configure --generator=Ninja --enable-ccache --prefix=/opt/spicy --enable-werror
build_script:
- ninja -j4 -C build check all package
- cp build/spicy*.rpm .
- rpm -i ./spicy*.rpm
- rm -rf build
test_install_script:
- SPICY_INSTALLATION_DIRECTORY=/opt/spicy make -C tests test-install
packages_artifacts:
path: ./spicy*.{deb,rpm}
type: application/gzip
freebsd13_task:
skip: $CIRRUS_BRANCH != 'main' && $CIRRUS_TAG == ''
freebsd_instance:
image_family: freebsd-13-4
cpu: 8
memory: 8GB
prepare_script: ./ci/prepare_freebsd.sh
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
CCACHE_COMPRESS: 1
update_git_script:
- git submodule update --recursive --init
configure_script:
- ./configure --generator=Ninja --enable-ccache --prefix=/opt/spicy --with-flex=/usr/local --with-bison=/usr/local --enable-werror
build_script:
- ninja -j4 -C build install
test_install_script:
- SPICY_INSTALLATION_DIRECTORY=/opt/spicy make -C tests test
packaging_script:
- ninja -C build package
packages_artifacts:
path: build/spicy*.tar.gz
type: application/gzip
freebsd14_task:
freebsd_instance:
image_family: freebsd-14-2
cpu: 8
memory: 8GB
prepare_script: ./ci/prepare_freebsd.sh
timeout_in: 120m
always:
ccache_cache:
folder: /tmp/ccache
fingerprint_script: echo $CIRRUS_TASK_NAME-$CIRRUS_OS
reupload_on_changes: true
env:
CCACHE_DIR: /tmp/ccache
CCACHE_COMPRESS: 1
update_git_script:
- git submodule update --recursive --init
configure_script:
- ./configure --generator=Ninja --enable-ccache --prefix=/opt/spicy --with-flex=/usr/local --with-bison=/usr/local --enable-werror
build_script:
- ninja -j4 -C build install
test_install_script:
- SPICY_INSTALLATION_DIRECTORY=/opt/spicy make -C tests test
packaging_script:
- ninja -C build package
packages_artifacts:
path: build/spicy*.tar.gz
type: application/gzip