Since the recent releases and upper-constraints bumps for
openstackdocstheme 2.1.0 and reno 3.1.0, both sphinx extensions now
support safe parallel reading.
This adds the '-j auto' option to the sphinx-build command for building
release notes to parallelize the build over multiple CPUs.
This effort was inspired by the nova build-openstack-releasenotes job
which typically takes 52m to 1h to run. The job timeout is 1h, so we
are occasionally seeing TIMED_OUT job failures.
With parallel sphinx-build, the job run time is reduced down to 15m.
With the arrival of ansible-lint 4, comparisons to literal boolean
values are now forbidden. Adjust the new violations accordingly and
remove the rule 601 exclusion.
Sphinx jobs and reno jobs need basically the same thing for
dependencies. So make a new role, ensure-sphinx, which is
parameterizable enough that it can be used by both reno and sphinx jobs.
Make build jobs for both releasenotes and sphinx docs, as both of these
things are perfectly valid things to do in both OpenStack and
non-OpenStack contexts. We'll add an openstack specific job in
openstack-zuul-jobs that uses these as parents but adds the requirements
repo and constraints file settings.
Some of the pip commands here can be improved once
https://github.com/ansible/ansible/pull/33098 lands and is released,
which would allow specifying --user and -c as parameters to the pip