Testing
Right now we are using 3 different CI systems in the CI Framework project:
Github workflows
Zuul CI
Prow CI
The goal was to unify the tests in a single CI system but since we can’t have privilege escalation using Prow CI, the team has decided to use Zuul CI to execute tests under each ansible role.
Github workflow
A series of Github workflows take place in the pull request checks:
Spellchecking using pySpelling
Ensure commit message has a (checked) checklist
CodeQL (actually a scheduled run)
Spellchecking
We’re using pySpelling, a python wrapper around aspell. You can add custom words
in the docs/dictionary/en-custom.txt
file. In order to keep it tidy and
avoid duplication, please do as follow:
[laptop]$ sudo dnf install -y aspell-en
[laptop]$ pip install pyspelling
[laptop]$ make spelling
# Correct actual spelling issues, or add new words to
# docs/dictionary/tmp
# Then, validate again the spelling (and re-build the dictionary)
[laptop]$ make spelling
That way, you ensure that only unique, lower-case words are added to the list.
Prow CI
All the jobs are being configured through the openshift/release project.
We can find two kind of configuration:
config: Right now we just have openstack-k8s-operators-ci-framework-main.yaml with the images we are using, the assigned resources and the name of the tests (pre-commit, ansible-test).
The image used for the tests is specified under the CI Framework project in the Containerfile.ci file.
We can find the targets called to execute the tests under the Makefile.
jobs: Here we can find the pre-submit and post-submit files.
We can see the past and current jobs with the openshift deck dashboard.
We can check the Prow status - openstack-k8s-operators/ci-framework. Here we will see under the repository all the jobs involved per PR with the schedule, duration, state, logs, etc.
It can be useful also to check the Tide status - openstack-k8s-operators/ci-framework. In this part we can see the under this repository every commit the action triggered in Prow CI.