zeek/ci
Christian Kreibich d772bbafc1 CI: Move to Fedora 32
Fedora 30 is EOL. For Fedora 32, we need to add the diffutils RPM to
the installation list, since cmp and diff aren't automatically
available in the base image. (Also, sort the RPMs alphabetically.)
2020-09-18 15:40:43 -07:00
..
centos-7 Add Cirrus CI config 2019-12-17 15:28:25 -08:00
centos-8 Review cleanup 2020-06-09 16:40:23 -07:00
debian-9 Add Cirrus CI config 2019-12-17 15:28:25 -08:00
debian-9-32bit Add a 32-bit task to Cirrus CI config 2020-02-14 21:40:36 -08:00
fedora-32 CI: Move to Fedora 32 2020-09-18 15:40:43 -07:00
freebsd Fix FreeBSD CI script to install right SWIG package 2020-07-08 11:07:56 -07:00
macos Add Cirrus CI config 2019-12-17 15:28:25 -08:00
ubuntu-16.04 Add Cirrus CI config 2019-12-17 15:28:25 -08:00
ubuntu-18.04 Merge remote-tracking branch 'origin/topic/jsiwek/fuzzing' 2020-05-12 18:53:06 -07:00
benchmark.sh Improve CI benchmark script's error handling/messaging 2020-08-31 16:08:00 -07:00
build.sh Place build file in explicit location for benchmarking to work correctly 2020-06-16 21:25:15 -07:00
init-external-repos.sh Fix CI to checkout right commit of zeek-testing-private 2020-02-21 22:57:53 -08:00
README Update docs for configuring CI email notifications 2020-08-19 11:51:27 -07:00
test-fuzzers.sh Test fuzzers against seed corpus under CI ASan build 2020-04-28 16:17:39 -07:00
test.sh Rename aux/ to auxil/ 2020-06-04 15:18:44 -07:00
update-zeekygen-docs.sh GH-1149: Add GitHub Action to automate generation of zeek-docs 2020-09-01 17:52:00 -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 Orgnaization-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.