zeek/ci
Arne Welzel 876d16b4be ci/benchmark: Send more Cirrus, GitHub and Zeek version information
I wonder if we hit a query string limitation and should instead switch
to post body here. It's the `curl -G -X POST` part making this a POST
with a long query string.

(cherry picked from commit 7b28152a92)
2023-09-19 19:57:51 +02:00
..
alpine CI: refresh all docker images, fix package installation on opensuse-tumbleweed 2023-08-16 15:10:09 -07:00
centos-7 CI: refresh all docker images, fix package installation on opensuse-tumbleweed 2023-08-16 15:10:09 -07:00
centos-stream-8 CI: refresh all docker images, fix package installation on opensuse-tumbleweed 2023-08-16 15:10:09 -07:00
centos-stream-9 CI: refresh all docker images, fix package installation on opensuse-tumbleweed 2023-08-16 15:10:09 -07:00
debian-10 CI: refresh all docker images, fix package installation on opensuse-tumbleweed 2023-08-16 15:10:09 -07:00
debian-11 CI: refresh all docker images, fix package installation on opensuse-tumbleweed 2023-08-16 15:10:09 -07:00
debian-12 CI: refresh all docker images, fix package installation on opensuse-tumbleweed 2023-08-16 15:10:09 -07:00
fedora-37 CI: refresh all docker images, fix package installation on opensuse-tumbleweed 2023-08-16 15:10:09 -07:00
fedora-38 CI: refresh all docker images, fix package installation on opensuse-tumbleweed 2023-08-16 15:10:09 -07:00
freebsd Use ensurepip to install pip on FreeBSD 2023-02-22 13:27:20 -07:00
macos CI: Call 'brew install' for macOS to ensure we're using openssl@3 on all hosts 2023-02-09 20:44:56 -07:00
opensuse-leap-15.4 CI: refresh all docker images, fix package installation on opensuse-tumbleweed 2023-08-16 15:10:09 -07:00
opensuse-tumbleweed CI: refresh all docker images, fix package installation on opensuse-tumbleweed 2023-08-16 15:10:09 -07:00
ubuntu-18.04 CI: refresh all docker images, fix package installation on opensuse-tumbleweed 2023-08-16 15:10:09 -07:00
ubuntu-20.04 CI: refresh all docker images, fix package installation on opensuse-tumbleweed 2023-08-16 15:10:09 -07:00
ubuntu-22.04 Remove EOL Ubuntu 22.10 build, update Ubuntu 22.04 docker image 2023-09-12 11:17:35 -07:00
windows ci/windows: choco --localonly is gone 2023-06-09 13:44:11 +02:00
benchmark.sh ci/benchmark: Send more Cirrus, GitHub and Zeek version information 2023-09-19 19:57:51 +02:00
build.sh Remove comment about osx-sysroot [nomail] [skip ci] 2023-01-30 15:41:37 -07:00
collect-repo-info.py Tweak format of zkg information in build info. 2023-05-16 10:21:21 +02:00
common.sh Rework .cirrus.yml a bit to commonize some parts 2022-05-19 09:21:55 -07: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: drop macOS Big Sur, add macOS Ventura 2023-01-03 08:33:00 -07: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
test-fuzzers.sh Move fuzzer corpus files to another directory 2022-08-26 13:51:30 -07:00
test.sh Use btest -A on CI to get more information about stuck tests 2023-02-22 16:57:06 -07:00
tsan_suppressions.txt Merge remote-tracking branch 'origin/topic/timw/tsan-upgrade' 2023-08-09 15:57:39 -07:00
update-zeekygen-docs.sh Format shell scripts with shfmt. 2021-11-24 23:13:02 +01:00
upload-coverage.sh Prevent non-master builds, add cirrus information to upload 2020-10-22 00:56:20 +00: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.