Merge "[docs] add zuul.yaml maintenance tasks"

This commit is contained in:
Zuul 2022-07-22 13:05:15 +00:00 committed by Gerrit Code Review
commit 47914d29c3
1 changed files with 91 additions and 0 deletions

View File

@ -157,6 +157,10 @@ the braces (that is, ``{`` and ``}``).
governance documentation
<https://governance.openstack.org/tc/reference/runtimes/>`_.
* If the supported python runtimes have changed from the previous release,
you may also need to update the ``python_requires`` and the "Programming
Language" classifiers in cinderlib's ``setup.cfg`` file.
[testenv:docs]install_command
`````````````````````````````
@ -199,6 +203,93 @@ A few things to note about the cinderlib ``.zuul.yaml`` file.
from their master branch -- including openstack requirements, which specifies
the upper-constraints for the release.
* The QA testing templates are defined here:
https://opendev.org/openstack/openstack-zuul-jobs/src/branch/master/zuul.d/project-templates.yaml
The ``openstack-zuul-jobs`` repo is not branched, so that file will contain
the testing templates for all stable branches for which OpenStack CI is
still supported.
After the cinderlib 'n' release, you will open cinderlib for 'n+1'
development. For example, after the yoga release, you will open cinderlib
for zed development. For the reasons outlined above, we won't use the
zed template directly, but you need to look at it to see what jobs it
includes, and make sure that cinderlib's ``.zuul.yaml`` uses equivalent jobs
in each of the check, gate, and post pipelines.
* What's meant by "equivalent jobs" is best explained by an example.
The ``openstack-python3-zed-jobs`` template contains (among other things)
an ``openstack-tox-py39`` job. We don't use that job directly, but
instead have an ``cinderlib-tox-py39`` job defined in the cinderlib
``.zuul.yaml`` that has ``openstack-tox-py39`` as a parent. (If the
equivalent job you need doesn't exist, you must create it, using the
other jobs as examples.)
We need these cinderlib-specific jobs for running unit tests in the
CI because the tests run using the development versions of cinder and
os-brick, not released versions, so we need to tell Zuul that it needs
to have the code repositories for cinder and os-brick available. (We
also tell it to have the requirements repo available; it will be needed
during cinderlib's cycle-trailing development phase.)
With that background, here are the ``.zuul.yaml`` maintenance tasks.
* When the coordinated release for cycle 'n' has occurred, the jobs in
cinderlib's ``.zuul.yaml`` in master must be updated to use the 'n'
stable branch for each of its sibling projects. Letting 'n' be the
Yoga relase, what this means is that the jobs will change from looking
like this:
.. code-block::
- job:
name: cinderlib-tox-py39
parent: openstack-tox-py39
required-projects:
- name: openstack/os-brick
- name: openstack/cinder
- name: openstack/requirements
to looking like this:
.. code-block::
- job:
name: cinderlib-tox-py39
parent: openstack-tox-py39
required-projects:
- name: openstack/os-brick
override-checkout: stable/yoga
- name: openstack/cinder
override-checkout: stable/yoga
- name: openstack/requirements
override-checkout: stable/yoga
Additionally, instead of running the
``os-brick-src-tempest-lvm-lio-barbican`` job (which is defined in
the os-brick repository), we will need to run a special version of
that job will be defined in cinderlib's ``.zuul.yaml``. This job
should already be defined in the file, and will be named
``cinderlib-os-brick-src-tempest-lvm-lio-barbican-{release}``.
Verify that the job has the correct branch specified for
``override-checkout``, and then configure the ``check`` and ``gate``
sections to run this job.
* After the 'n' release of cinderlib, when cinderlib master has become
the 'n+1' development branch and is once again in sync with the master
branches of cinder and os-brick:
* remove the ``override-checkout`` specification from the
``cinderlib-tox-*`` job definitions
* take a look at the 'n+1' release testing template (as discussed
above) and make sure that cinderlib is running the correct jobs
for the cycle
* run ``os-brick-src-tempest-lvm-lio-barbican`` in the check and
gate
* update the definition for the
'cinderlib-os-brick-src-tempest-lvm-lio-barbican-{release}'
job so that it will be ready when you need it later in the cycle.
cinderlib requirements.txt maintenance
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~