zeek/ci
Arne Welzel b377fb1d5a Merge remote-tracking branch 'origin/topic/awelzel/ci-fedora-42'
* origin/topic/awelzel/ci-fedora-42:
  probabilistic/BitVector: Add include <cstdint>
  Bump spicy to fix build with GCC 15.1
  CI: Drop fedora-40
  CI: Add fedora-42

(cherry picked from commit 7583651bec)
2025-05-19 09:29:36 -07:00
..
alpine ci/alpine: Install openssl package for testing 2025-03-10 17:07:30 +01:00
centos-stream-9 ci: Add cppzmq and libzmq to most platforms 2024-12-10 20:33:02 +01:00
debian-11 ci: Add cppzmq and libzmq to most platforms 2024-12-10 20:33:02 +01:00
debian-12 CI: Add external plugins to builtin plugins task 2025-03-31 14:19:18 +02:00
fedora-41 testing/btest: Use OPENSSL_ENABLE_SHA1_SIGNATURES 2025-02-04 09:43:26 +01:00
fedora-42 Merge remote-tracking branch 'origin/topic/awelzel/ci-fedora-42' 2025-05-19 09:29:36 -07:00
freebsd CI: Add krb5 to FreeBSD 2025-04-14 15:15:05 -07:00
macos ci/macos/prepare: Install python@3 explicitly 2025-03-11 09:51:01 +01:00
opensuse-leap-15.6 ci: Add cppzmq and libzmq to most platforms 2024-12-10 20:33:02 +01:00
opensuse-tumbleweed ci/opensuse-tumpleweed: Bust cache 2025-03-11 10:18:20 +01:00
ubuntu-22.04 ci: Add cppzmq and libzmq to most platforms 2024-12-10 20:33:02 +01:00
ubuntu-24.04 Redis: Add btests for the redis backend 2025-03-18 09:32:34 -07:00
ubuntu-24.10 ci: Install websockets from pip for all distros 2025-03-10 17:07:30 +01:00
windows Switch all of the conan configuration to vcpkg 2024-02-02 14:52:16 -07:00
benchmark.sh ci/benchmark: Also send CIRRUS_TASK_NAME to benchmarker API 2023-09-25 13:50:50 +02:00
build.sh Remove comment about osx-sysroot [nomail] [skip ci] 2023-01-30 15:41:37 -07:00
collect-repo-info.py Swap pre-commit yapf for ruff/ruff-format, fix findings 2024-12-11 11:08:37 -07:00
common.sh Rework .cirrus.yml a bit to commonize some parts 2022-05-19 09:21:55 -07:00
container-images-addl-tags.sh cirrus: Move additional tag "computation" into separate script 2024-12-13 13:17:31 +01:00
container-images-tag-and-push.sh cirrus/container: Polish, fix and automated pushing of images 2023-02-13 12:08:53 +01:00
find-current-version.sh cirrus/container: Polish, fix and automated pushing of images 2023-02-13 12:08:53 +01:00
init-external-repos.sh ci/init-external-repo.sh: Use regex to match macos cirrus task 2025-03-17 10:48:59 +01:00
license-header.py Update COPYING date to now and fix some [skip CI] 2025-01-09 08:38:45 -05:00
pre-build.sh cirrus/ci: Add pre_build_script mechanism 2023-09-26 19:37:32 +02:00
public-ecr-cleanup.sh ci: Add public-ecr-vacuum.sh 2023-05-05 12:11:09 +02:00
README spelling: organization 2022-11-15 17:47:49 -05:00
spicy-install-analyzers.sh cirrus/ci: Add ubuntu22_spicy_task and ubuntu22_spicy_head_task 2023-09-26 19:45:07 +02:00
test-fuzzers.sh Move fuzzer corpus files to another directory 2022-08-26 13:51:30 -07:00
test.sh CI: Run btests on macOS under sudo 2025-03-19 10:56:45 -07:00
tsan_suppressions.txt tsan_suppressions: Add called_from_lib: libzmq 2024-12-10 20:33:02 +01:00
update-zeekygen-docs.sh ci/update-zeekygen-docs.sh: Do output stderr by default 2023-10-11 15:18:36 +02:00
upload-coverage.sh CI: Run coverage builds for PRs, but only upload on master 2024-05-21 15:11:44 -07:00

=========================================
Continuous Integration Configuration Info
=========================================

The following pointers are aimed at maintainers to help describe a few points
about the Cirrus CI setup that may not be obvious/intuitive.

Private Test Suite
------------------

Access to the private test suite is available in CI tasks except in Pull
Requests from people that do not otherwise have write access to the zeek
repository on GitHub.  To configure this access for the
``zeek-testing-private`` repository, it uses a "deploy key" which is a single
purpose SSH key with read-only permissions.  Here's how it can be set up:

1. ``ssh-keygen -f cirrus-key``

2. Add contents of ``cirrus-key.pub`` as a new key on GitHub:
   https://github.com/zeek/zeek-testing-private/settings/keys

3. Generate a new Organization-Level Secured Variable in Cirrus CI settings at
   https://cirrus-ci.com/settings/github/zeek.  The value of the secured
   variable is the base64-encoded private key, and can be obtained from the
   output of the command: ``base64 cirrus-key``.

4. Take the ``ENCRYPTED[...]``` string generated by Cirrus and use that as the
   value of ``ZEEK_TESTING_PRIVATE_SSH_KEY`` in ``.cirrus.yml``

5. Delete the local key: ``rm cirrus-key*``

6. Commit/push the changes.

Email Notifications
-------------------

Cirrus CI doesn't feature any way to perform email notifications on failures,
so that is instead handled by a separate GitHub Action:

  https://github.com/zeek/ci-email-action

The configuration of that GitHub Action is typical: it's the
``.github/workflows/ci-notification.yml`` file, which sets SMTP/mail info
via secrets stored in GitHub for the Zeek organization:

  https://github.com/organizations/zeek/settings/secrets

The particular values used for those are currently from the Zeek project's AWS
Simple Email Service configuration.