Skip to content
Julio Montes edited this page Jul 6, 2020 · 44 revisions

Kata currently uses a number of Continuous Integration (CI) systems:

Operation

Travis

Travis is triggered automatically when a user raises a PR. The behaviour is controlled by a .travis.yml file in the top-level directory of every repository (for example the runtime's is here).

Azure

The Azure CI/CD is only used for the packaging repo, and is used to test that packaging builds work (OBS builds).

Azure CI results can be seen in the github 'Checks' tabs on the associated PR.

Triggering Azure

Azure CI/CD triggers when a "magic comment" is added to a PR, as defined in the Azure Pipeline documentation. Sadly it appears they keywords cannot be changed or over-ridden.

See the specific job triggers section for more details.

Jenkins

The Jenkins configuration and most documentation is kept in the CI repository.

Triggering Jenkins

Jenkins is setup to trigger a CI run on all the slaves/nodes when a "magic comment" is added to a PR.

To trigger an initial CI run, add the text below as a comment:

/test

To trigger another test for the same PR (a subsequent or "re-test"), add the following as a comment:

/retest

Specific job triggers

Some jobs (such as for a particularly architecture, feature or distro) can be triggered individually, which helps target individual CIs, and saves re-triggering all CIs and consuming more CI resource than necessary. Current specific triggers are:

Phrase Triggers
/AzurePipelines run (re)-trigger OBS CI (packaging repo only).

Note: Only works if you are a member of the packaging team and the phrase is the only text in the comment!
/(re)test-arm (re)-trigger ARM architecture jobs
/(re)test-centos (re)-trigger CentOS distro jobs
/(re)test-clh (re)-trigger Cloud Hypervisor and Podman Cloud Hypervisor jobs
/(re)test-clh-podman (re)-trigger Podman Cloud Hypervisor job
/(re)test-debian (re)-trigger Debian distro jobs
/(re)test-fc (re)-trigger Firecracker job
/(re)test-fedora (re)-trigger Fedora distro jobs
/(re)test-fedora-vsocks (re)-trigger Fedora VSOCKS jobs
/(re)test-firecracker (re)-trigger Firecracker job
/(re)test-qemu-metrics (re)-trigger QEMU metrics job
/(re)test-nemu (re)-trigger NEMU hypervisor jobs
/(re)test-opensuse (re)-trigger OpenSUSE distro jobs
/(re)test-podman (re)-trigger podman container manager jobs
/(re)test-power (re)-trigger POWER architecture jobs
/(re)test-rhel (re)-trigger RHEL distro jobs
/(re)test-s390x (re)-trigger s390x architecture jobs
/(re)test-sles (re)-trigger SUSE SLES distro jobs
/(re)test-snap (re)-trigger snap job (packaging repo only)
/(re)test-ubuntu (re)-trigger Ubuntu distro jobs
/(re)test-vfio (re)-trigger VFIO job
/(re)test-virtiofs (re)-trigger VIRTIOFS job
/zuul-recheck trigger Zuul Signed-off-by check
/test kata-deploy trigger a GitHub Action kata-deploy test

Zuul

The Zuul CI is used to check for 'Signed-off-by' lines in PR commits, and to check for WIP and DNM keywords and labels.

Trigger phrases are detailed on the above referenced pages, and also in the specific job triggers section above. Note, the WIP check cannot be (re)triggered by a key phrase - it is triggered by PR edits or PR label changes.

For reference, the Kata Zuul instance configuration files can be found in the opendev.org repos

For more information on how to make changes to the Kata Zuul setup, see the HowToChangeZuul page.

GitHub Actions

Kata uses GitHub Actions in the packaging and kata-containers repos.

Packaging Actions

The packaging repo uses the actions defined in this file to test kata-deploy.

The actions uses the Action code from the slash-command-action repo to look for trigger phrases.

The trigger phrase is /test kata-deploy.

Kata-Containers actions

The packaging repo uses the actions defined in this file to build and upload the release artifacts (that is, to 'make a release' onto the GitHub runtime repo Releases tab).

This action is triggered by the pushing of a new tag to the repo. There are no trigger phrases to invoke this action.

CodeCov

Kata Containers runs CodeCov on PRs across a number of the repos. CodeCov is run as one of the final actions of the Jenkins CI runs.

There is no separate trigger phrase to invoke CodeCov on PRs for Kata.

Known CI issues

See the Jenkins status page.