# Shared jobs specific to the OpenStack Project # imports jobs from: # https://opendev.org/openstack/project-config # https://opendev.org/zuul/zuul-jobs - job: name: build-openstack-sphinx-docs parent: build-sphinx-docs branches: ^stable/(ocata|pike|queens|rocky).*$ nodeset: ubuntu-xenial description: | Builds documentation using Sphinx per a previous version of the OpenStack PTI and then collects the results into the log directory so that they can be examined in their published form after a successful build. It runs the prepare-docs-for-afs role so that AFS stamp files can be examined if desired, and also validates htaccess files using the whereto tool. This job is obsolete and is not supported on branches after rocky, use :zuul:job:`openstack-tox-docs` instead. success-url: html/ required-projects: - name: openstack/requirements # Add neutron and horizon for the neutron-horizon-hack. # TODO(AJaeger) ZOMG DELETE THIS once we neutron-horizon-hack. - name: openstack/horizon - name: openstack/neutron pre-run: playbooks/sphinx-docs/neutron-horizon-hack.yaml roles: - zuul: zuul/zuul-jobs vars: constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' sphinx_python: python2 - job: name: tox-py35-on-zuul parent: tox-py35 nodeset: ubuntu-xenial description: | Run zuul's py35 unittests on patches to zuul-jobs. vars: zuul_work_dir: src/opendev.org/zuul/zuul required-projects: - zuul/zuul - job: name: openstack-tox abstract: true parent: tox-fips nodeset: ubuntu-focal description: | Base job to run tox jobs with OpenStack project specific updates. Processing upper-constraints files from openstack/requirements. branches: ^(?!stable/(ocata|pike|queens|rocky|stein|train|ussuri)).*$ required-projects: - name: openstack/requirements vars: tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' enable_fips: false - job: name: openstack-tox abstract: true parent: tox nodeset: ubuntu-bionic description: | Base job (bionic) to run tox jobs with OpenStack project specific updates. Processing upper-constraints files from openstack/requirements. This job runs on bionic for stable/stein, train, and ussuri. This job is prepared to make sure all stable branches from stable/stein till stable/ussuri will keep running on bionic. branches: - stable/stein - stable/train - stable/ussuri required-projects: - name: openstack/requirements vars: tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' - job: name: openstack-tox abstract: true parent: tox nodeset: ubuntu-xenial description: | Base job (xenial) to run tox jobs with OpenStack project specific updates. Processing upper-constraints files from openstack/requirements. This job runs on Xenial for stable/ocata, pike, queens and rocky. This job is prepared to make sure all stable branches before stable/stein will keep running on xenial. branches: - stable/ocata - stable/pike - stable/queens - stable/rocky required-projects: - name: openstack/requirements vars: tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' - job: name: openstack-tox-with-sudo parent: openstack-tox description: | Job to run tox for tests with OpenStack project specific settings such as constraints but without sudo access being revoked. run: playbooks/tox-with-sudo/run.yaml - job: name: openstack-tox-py27 parent: openstack-tox nodeset: ubuntu-bionic timeout: 2400 description: | Run unit tests for an OpenStack Python project under cPython version 2.7. Uses tox with the ``py27`` environment. branches: ^(?!stable/(ocata|pike|queens|rocky)).*$ irrelevant-files: &common-irrelevant-files - ^.*\.rst$ - ^api-ref/.*$ - ^doc/.*$ - ^releasenotes/.*$ - ^deliverables/.*$ vars: tox_envlist: py27 bindep_profile: test py27 - job: name: openstack-tox-py27 parent: openstack-tox nodeset: ubuntu-xenial timeout: 2400 description: | Run unit tests for an OpenStack Python project under cPython version 2.7. Uses tox with the ``py27`` environment. This job runs on Xenial for stable/ocata, pike, queens and rocky. This job is prepared to make sure all stable branches before stable/stein will keep running on xenial. branches: - stable/ocata - stable/pike - stable/queens - stable/rocky irrelevant-files: *common-irrelevant-files vars: tox_envlist: py27 bindep_profile: test py27 - job: name: openstack-tox-py35 parent: openstack-tox nodeset: ubuntu-xenial branches: ^(?!driverfixes/).*$ timeout: 2400 description: | Run unit tests for an OpenStack project under cPython version 3.5. Uses tox with the ``py35`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: py35 bindep_profile: test py35 - job: name: openstack-tox-py36 parent: openstack-tox nodeset: ubuntu-bionic timeout: 2400 description: | Run unit tests for an OpenStack Python project under cPython version 3.6. Uses tox with the ``py36`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: py36 bindep_profile: test py36 - job: name: openstack-tox-py37 parent: openstack-tox nodeset: ubuntu-bionic timeout: 2400 description: | Run unit tests for an OpenStack Python project under cPython version 3.7. Uses tox with the ``py37`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: py37 bindep_profile: test py37 python_version: '3.7' - job: name: openstack-tox-py38 parent: openstack-tox nodeset: ubuntu-focal timeout: 2400 description: | Run unit tests for an OpenStack Python project under cPython version 3.8. Uses tox with the ``py38`` environment. irrelevant-files: *common-irrelevant-files branches: ^(?!stable/(train|ussuri)).*$ vars: tox_envlist: py38 bindep_profile: test py38 python_version: '3.8' - job: name: openstack-tox-py38 parent: openstack-tox nodeset: ubuntu-bionic timeout: 2400 description: | Run unit tests for an OpenStack Python project under cPython version 3.8 on ubuntu bionic. This job runs on bionic for stable/train and ussuri. Uses tox with the ``py38`` environment. irrelevant-files: *common-irrelevant-files branches: - stable/train - stable/ussuri vars: tox_envlist: py38 bindep_profile: test py38 python_version: '3.8' - job: name: openstack-tox-py38-arm64 parent: openstack-tox-py38 nodeset: ubuntu-focal-arm64 timeout: 3600 description: | Run unit tests for an OpenStack Python project under cPython version 3.8 on top of arm64 architecture. Uses tox with the ``py38`` environment in arm64 platform. - job: name: openstack-tox-py39 parent: openstack-tox nodeset: ubuntu-focal timeout: 2400 description: | Run unit tests for an OpenStack Python project under cPython version 3.9. Uses tox with the ``py39`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: py39 bindep_profile: test py39 python_version: '3.9' - job: name: openstack-tox-py39-arm64 parent: openstack-tox-py39 nodeset: ubuntu-focal-arm64 timeout: 3600 description: | Run unit tests for an OpenStack Python project under cPython version 3.9 on top of arm64 architecture. Uses tox with the ``py39`` environment in arm64 platform. - job: name: openstack-tox-py310 parent: openstack-tox nodeset: ubuntu-jammy timeout: 2400 description: | Run unit tests for an OpenStack Python project under cPython version 3.10. Uses tox with the ``py310`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: py310 bindep_profile: test py310 python_version: '3.10' - job: name: openstack-tox-pypy parent: openstack-tox description: | Run unit tests for an OpenStack Python project under PyPy. Uses tox with the ``pypy`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: pypy bindep_profile: test pypy - job: name: openstack-tox-linters parent: openstack-tox description: | Runs code linting tests. Uses tox with the ``linters`` environment. vars: tox_envlist: linters bindep_profile: test linters - job: name: openstack-tox-molecule parent: tox-molecule description: | Runs molecule to test Ansible roles. Uses tox with the ``molecule`` environment. post-run: playbooks/tox-molecule/post.yaml vars: bindep_profile: test molecule - job: name: openstack-tox-pep8 parent: openstack-tox description: | Runs code pep8 tests. Uses tox with the ``pep8`` environment. vars: tox_envlist: pep8 bindep_profile: test pep8 test_setup_skip: true - job: name: openstack-tox-cover parent: tox-cover description: | Run code coverage tests. Uses tox with the ``cover`` environment. nodeset: ubuntu-focal branches: ^(?!stable/(ocata|pike|queens|rocky|stein|train|ussuri)).*$ required-projects: - name: openstack/requirements irrelevant-files: *common-irrelevant-files success-url: cover/ vars: tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' timeout: 3000 - job: name: openstack-tox-cover parent: tox-cover description: | Run code coverage tests (Bionic). Uses tox with the ``cover`` environment. This job runs on bionic for stable/stein, train, and ussuri. nodeset: ubuntu-bionic branches: - stable/stein - stable/train - stable/ussuri required-projects: - name: openstack/requirements irrelevant-files: *common-irrelevant-files success-url: cover/ vars: tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' timeout: 3000 - job: name: openstack-tox-cover parent: tox-cover description: | Run code coverage tests (Xenial). Uses tox with the ``cover`` environment. This job runs on Xenial for stable/ocata, pike, queens and rocky. This job is prepared to make sure all stable branches before stable/stein will keep running on xenial. nodeset: ubuntu-xenial required-projects: - name: openstack/requirements irrelevant-files: *common-irrelevant-files success-url: cover/ vars: tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' timeout: 3000 branches: - stable/ocata - stable/pike - stable/queens - stable/rocky - job: name: openstack-tox-bashate parent: openstack-tox description: | Run bashate tests. Uses tox with the ``bashate`` environment. vars: tox_envlist: bashate - job: name: openstack-tox-build parent: openstack-tox description: | Run build tests. Uses tox with the ``build`` environment. vars: tox_envlist: build - job: name: openstack-tox-functional parent: openstack-tox description: | Run tox-based functional tests for an OpenStack Python project. Uses tox with the ``functional`` environment. irrelevant-files: *common-irrelevant-files branches: ^(?!stable/(ocata|pike|queens|rocky|stein|train|ussuri)).*$ vars: tox_envlist: functional - job: name: openstack-tox-functional parent: openstack-tox description: | Run tox-based (bionic) functional tests for an OpenStack Python project. Uses tox with the ``functional`` environment. This job runs on bionic for stable/stein, train, and ussuri. irrelevant-files: *common-irrelevant-files nodeset: ubuntu-bionic branches: - stable/stein - stable/train - stable/ussuri vars: tox_envlist: functional - job: name: openstack-tox-functional parent: openstack-tox description: | Run tox-based (xenial) functional tests for an OpenStack Python project. Uses tox with the ``functional`` environment. This job runs on xenial for stable/rocky. irrelevant-files: *common-irrelevant-files nodeset: ubuntu-xenial branches: - stable/ocata - stable/pike - stable/queens - stable/rocky vars: tox_envlist: functional - job: name: openstack-tox-functional-with-sudo parent: openstack-tox-with-sudo description: | Run tox-based functional tests for an OpenStack Python project. Uses tox with the ``functional`` environment. Sudo access is not revoked. irrelevant-files: *common-irrelevant-files branches: ^(?!stable/(ocata|pike|queens|rocky|stein|train|ussuri)).*$ vars: tox_envlist: functional - job: name: openstack-tox-functional-with-sudo parent: openstack-tox-with-sudo description: | Run tox-based (bionic) functional tests for an OpenStack Python project. Uses tox with the ``functional`` environment. Sudo access is not revoked. This job runs on bionic for stable/stein, train, and ussuri. irrelevant-files: *common-irrelevant-files nodeset: ubuntu-bionic branches: - stable/stein - stable/train - stable/ussuri vars: tox_envlist: functional - job: name: openstack-tox-functional-with-sudo parent: openstack-tox-with-sudo description: | Run tox-based (xenial) functional tests for an OpenStack Python project. Uses tox with the ``functional`` environment. Sudo access is not revoked. This job runs on xenial till stable/rocky. irrelevant-files: *common-irrelevant-files nodeset: ubuntu-xenial branches: - stable/ocata - stable/pike - stable/queens - stable/rocky vars: tox_envlist: functional - job: name: openstack-tox-functional-py35 parent: openstack-tox nodeset: ubuntu-xenial description: | Run tox-based functional tests for an OpenStack Python project under cPython version 3.5.. Uses tox with the ``functional-py35`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: functional-py35 - job: name: openstack-tox-functional-py36 parent: openstack-tox nodeset: ubuntu-bionic description: | Run tox-based functional tests for an OpenStack Python project under cPython version 3.6. Uses tox with the ``functional-py36`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: functional-py36 - job: name: openstack-tox-functional-py37 parent: openstack-tox nodeset: ubuntu-bionic description: | Run tox-based functional tests for an OpenStack Python project under cPython version 3.7. Uses tox with the ``functional-py37`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: functional-py37 python_version: '3.7' - job: name: openstack-tox-functional-py38 parent: openstack-tox nodeset: ubuntu-focal description: | Run tox-based functional tests for an OpenStack Python project under cPython version 3.8. Uses tox with the ``functional-py38`` environment. irrelevant-files: *common-irrelevant-files branches: ^(?!stable/(train|ussuri)).*$ vars: tox_envlist: functional-py38 bindep_profile: test py38 python_version: '3.8' - job: name: openstack-tox-functional-py38 parent: openstack-tox nodeset: ubuntu-bionic description: | Run tox-based (bionic) functional tests for an OpenStack Python project under cPython version 3.8. Uses tox with the ``functional-py38`` environment. This job runs on bionic for stable/train and ussuri. irrelevant-files: *common-irrelevant-files branches: - stable/train - stable/ussuri vars: tox_envlist: functional-py38 bindep_profile: test py38 python_version: '3.8' - job: name: openstack-tox-functional-py39 parent: openstack-tox nodeset: ubuntu-focal description: | Run tox-based functional tests for an OpenStack Python project under cPython version 3.9. Uses tox with the ``functional-py39`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: functional-py39 bindep_profile: test py39 python_version: '3.9' - job: name: openstack-tox-functional-py310 parent: openstack-tox nodeset: ubuntu-jammy description: | Run tox-based functional tests for an OpenStack Python project under cPython version 3.10. Uses tox with the ``functional-py310`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: functional-py310 bindep_profile: test py310 python_version: '3.10' - job: name: openstack-tox-functional-py36-fips parent: openstack-tox-functional-py36 nodeset: devstack-single-node-centos-8-stream description: | Functional testing for a FIPS enabled Centos 8 system pre-run: playbooks/fips/enable-fips.yaml vars: nslookup_target: 'opendev.org' - job: name: openstack-tox-functional-py38-fips parent: openstack-tox-functional-py38 nodeset: devstack-single-node-centos-8-stream description: | Functional testing for a FIPS enabled Centos 8 system pre-run: playbooks/fips/enable-fips.yaml vars: nslookup_target: 'opendev.org' - job: name: openstack-tox-validate parent: openstack-tox description: | Run validate tests. Uses tox with the ``validate`` environment. vars: tox_envlist: validate ensure_global_symlinks: true - job: name: openstack-tox-pylint parent: openstack-tox description: | Runs pylint tests. Uses tox with the ``pylint`` environment. irrelevant-files: *common-irrelevant-files vars: # pylint is very noisy tox_inline_comments: false tox_envlist: pylint - job: name: openstack-tox-compare-cover parent: openstack-tox # NOTE(sambetts) This job runs the full UTs twice to compare the coverage # pre-and-post a patch so requires longer to run. timeout: 4500 description: | Run coverage comparison tests. Uses tox with the ``compare-cover`` environment. vars: tox_envlist: compare-cover - job: name: openstack-tox-snap-with-sudo parent: openstack-tox-with-sudo description: | Run tox-based functional tests for an OpenStack Python project. Uses tox with the ``snap`` environment. Sudo access is not revoked. irrelevant-files: *common-irrelevant-files vars: tox_envlist: snap - job: name: openstack-tox-docs parent: opendev-tox-docs nodeset: ubuntu-focal description: | Run documentation build. Uses tox with the ``docs`` environment. .. zuul:jobvar: tox_envlist The tox environment for building HTML, default is ``docs``. .. zuul:jobvar: tox_pdf_envlist The tox environment for building PDF, default is ``pdf-docs``. If this environment does not exist, no PDF building is done. .. zuul:jobvar: tox_skip_pdf Whether to skip building of PDF documents. By default a PDF file is build if the tox environment specified by :zuul:jobvar:`tox_pdf_envlist` exists. branches: ^(?!stable/(ocata|pike|queens|rocky|stein|train|ussuri)).*$ required-projects: - name: openstack/requirements vars: tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' bindep_profile: compile doc tox_envlist: docs tox_pdf_envlist: pdf-docs tox_skip_pdf: false # PDF Building is only done from stein onwards. pre-run: playbooks/tox-docs/pre.yaml run: playbooks/tox-docs/run.yaml - job: name: openstack-tox-docs parent: opendev-tox-docs description: | Run documentation build (bionic). Uses tox with the ``docs`` environment. This job runs on bionic for stable/stein, train, and ussuri. .. zuul:jobvar: tox_envlist The tox environment for building HTML, default is ``docs``. .. zuul:jobvar: tox_pdf_envlist The tox environment for building PDF, default is ``pdf-docs``. If this environment does not exist, no PDF building is done. .. zuul:jobvar: tox_skip_pdf Whether to skip building of PDF documents. By default a PDF file is build if the tox environment specified by :zuul:jobvar:`tox_pdf_envlist` exists. required-projects: - name: openstack/requirements vars: tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' tox_envlist: docs bindep_profile: compile doc tox_pdf_envlist: pdf-docs tox_skip_pdf: false nodeset: ubuntu-bionic # PDF Building is only done from stein onwards, therefore these # pre-run and run playbooks are not part of # openstack-tox-docs job for older branches up to rocky. pre-run: playbooks/tox-docs/pre.yaml run: playbooks/tox-docs/run.yaml branches: - stable/stein - stable/train - stable/ussuri - job: name: openstack-tox-docs parent: opendev-tox-docs description: | Run documentation build (xenial). Uses tox with the ``docs`` environment. This job runs on Xenial for stable/ocata, pike, queens and rocky. This job is prepared to make sure all stable branches before stable/stein will keep running on xenial. required-projects: - name: openstack/requirements vars: tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' tox_envlist: docs bindep_profile: compile doc nodeset: ubuntu-xenial branches: - stable/ocata - stable/pike - stable/queens - stable/rocky - job: name: openstack-tox-with-oslo-master-base parent: openstack-tox-py27 timeout: 3000 description: | This job installs all oslo libraries from source and tests that the unit tests of the tested project work. required-projects: - openstack/automaton - openstack/debtcollector - openstack/futurist - openstack/osprofiler - openstack/oslo.cache - openstack/oslo.concurrency - openstack/oslo.config - openstack/oslo.context - openstack/oslo.db - openstack/oslo.i18n - openstack/oslo.log - openstack/oslo.messaging - openstack/oslo.middleware - openstack/oslo.policy - openstack/oslo.privsep - openstack/oslo.reports - openstack/oslo.rootwrap - openstack/oslo.serialization - openstack/oslo.service - openstack/oslo.utils - openstack/oslo.versionedobjects - openstack/oslo.vmware - openstack/oslotest - openstack/pycadf - openstack/stevedore - openstack/taskflow - openstack/tooz - openstack/pbr vars: tox_install_siblings: true - job: name: openstack-tox-py39-with-oslo-master parent: openstack-tox-with-oslo-master-base nodeset: ubuntu-focal description: | This job installs all oslo libraries from source and tests that the unit tests of the tested project work. It uses the tox ``py39`` environment. The job is normally run in a periodic pipeline, it is configured to run on the master branch. branches: master vars: tox_envlist: py39 bindep_profile: test py39 python_version: '3.9' - job: name: openstack-tox-py39-with-neutron-lib-master parent: openstack-tox-py39 timeout: 3000 description: | This job installs neutron-lib from source and tests that the unit tests of the tested project work. It uses the tox ``py39`` environment. The job is normally run in a periodic pipeline, it is configured to run on the master branch. branches: master required-projects: - openstack/neutron - openstack/neutron-lib vars: tox_install_siblings: true - job: name: openstack-tox-py39-with-ovsdbapp-master parent: openstack-tox-py39 timeout: 3000 description: | This job installs ovsdbapp from source and tests that the unit tests of the tested project work. It uses the tox ``py39`` environment. The job is normally run in a periodic pipeline, it is configured to run on the master branch. branches: master required-projects: - openstack/ovsdbapp vars: tox_install_siblings: true - job: name: openstack-tox-lower-constraints parent: openstack-tox nodeset: ubuntu-focal branches: ^(?!driverfixes/).*$ timeout: 2400 description: | Run unit tests using the lower constraints. Uses tox with the ``lower-constraints`` environment, which should be configured to use Python 3 by default unless the project does not support Python 3. irrelevant-files: *common-irrelevant-files vars: tox_envlist: lower-constraints bindep_profile: test py38 - job: name: build-openstack-puppet-tarball description: | Build a puppet tarball but do not upload it anywhere. pre-run: playbooks/puppet-tarball/pre.yaml run: playbooks/puppet-tarball/run.yaml files: ^metadata.json$ - job: name: publish-openstack-puppet-branch-tarball parent: publish-openstack-artifacts description: | Publish the results of the puppet-tarball job to tarballs.openstack.org. pre-run: playbooks/puppet-tarball/pre.yaml run: playbooks/puppet-tarball/run.yaml post-run: playbooks/puppet-branch-tarball/post.yaml - job: name: publish-openstack-javascript-tarball parent: publish-openstack-artifacts description: | Build and publish source tarball for a Javascript project. Responds to these variables: .. zuul:jobvar:: node_version :default: 6 The version of Node to use. .. zuul:jobvar: zuul_work_dir :default: {{ zuul.project.src_dir }} Path to operate in. pre-run: playbooks/javascript/pre.yaml run: playbooks/javascript/tarball.yaml post-run: - playbooks/javascript/post.yaml - playbooks/javascript/post-tarball.yaml - job: name: announce-release description: Send a release announcement after publishing a project pre-run: playbooks/release/pre.yaml run: playbooks/release/announce.yaml required-projects: - openstack/releases - job: name: xstatic-check-version description: Check version used by xstatic packages run: playbooks/xstatic/check-version.yaml - job: name: build-openstack-releasenotes branches: ^(?!driverfixes/).*$ parent: build-reno-releasenotes description: | Build releasenotes, with optional translation support, using reno. # Building translated releasenotes can take long for large repositories timeout: 3600 required-projects: - name: openstack/requirements vars: constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' - job: name: build-openstack-api-ref parent: openstack-tox-docs description: | Build api-ref document. This is only run on master branch of a project. timeout: 1800 vars: sphinx_build_dir: api-ref/build tox_envlist: api-ref tox_skip_pdf: true # We only publish the master branch, so no need to run # for changes on other branches. branches: master - job: name: build-openstack-api-guide parent: openstack-tox-docs description: | Build api-guide document. This is only run for changes on master branch of a project. vars: sphinx_build_dir: api-guide/build tox_envlist: api-guide tox_skip_pdf: true # We only publish the master branch, so no need to run # for changes on other branches. branches: master - job: name: build-openstack-deploy-guide parent: openstack-tox-docs description: | Build deploy-guide document. vars: sphinx_build_dir: deploy-guide/build tox_envlist: deploy-guide tox_skip_pdf: true - job: name: build-openstack-install-guide parent: build-openstack-sphinx-docs description: | Build install-guide document. vars: sphinx_build_dir: install-guide/build sphinx_source_dir: install-guide/source # This job runs only pre-pike, with pike the documents have been # integrated into normal builds. branches: - stable/newton - stable/ocata files: - ^install-guide/.* - bindep.txt - doc/requirements.txt - test-requirements.txt - job: name: legacy-base abstract: true description: | Base job (xenial) for autoconverted legacy jobs This job runs on Xenial and this is for stable/ocata, pike, queens and rocky. This job is prepared to make sure all stable branches before stable/stein will keep running on xenial. pre-run: playbooks/legacy/pre.yaml nodeset: legacy-ubuntu-xenial vars: bindep_fallback: /usr/local/bindep-fallback/bindep-fallback.txt branches: - stable/ocata - stable/pike - stable/queens - stable/rocky - job: name: legacy-base abstract: true description: | Base job (bionic) for autoconverted legacy jobs This job runs on Bionic from stable/stein on. pre-run: playbooks/legacy/pre.yaml vars: bindep_fallback: /usr/local/bindep-fallback/bindep-fallback.txt branches: ^(?!stable/(ocata|pike|queens|rocky)).*$ nodeset: legacy-ubuntu-bionic - job: name: legacy-dsvm-base abstract: true description: | Base job (xenial) for autoconverted legacy devstack-gate jobs This job runs devstack-gate with as few changes as possible and may be used by jobs which have been automatically converted as part of the migration to Zuul v3. This job runs on Xenial for stable/ocata, pike, queens and rocky. This job is prepared to make sure all stable branches before stable/stein will keep running on xenial. nodeset: devstack-single-node branches: - stable/ocata - stable/pike - stable/queens - stable/rocky pre-run: playbooks/legacy/pre.yaml required-projects: - openstack/devstack - openstack/devstack-gate - openstack/tripleo-ci - openstack/ceilometer - openstack/ceilometermiddleware - openstack/cinder - openstack/glance - openstack/glance_store - openstack/heat - openstack/heat-cfntools - openstack/heat-templates - openstack/horizon - openstack/keystone - openstack/keystoneauth - openstack/keystonemiddleware - openstack/manila - openstack/manila-ui - openstack/neutron - openstack/neutron-fwaas - openstack/neutron-vpnaas - openstack/nova - openstack/octavia - openstack/os-apply-config - openstack/os-brick - openstack/os-client-config - openstack/os-collect-config - openstack/os-net-config - openstack/os-refresh-config - openstack/osc-lib # NOTE(mriedem): The openstack/placement repo is new in Stein and will # be ignored on stable branches before Stein. - openstack/placement - openstack/requirements - openstack/swift - openstack/tempest - openstack/tripleo-heat-templates - openstack/tripleo-image-elements - openstack/zaqar - job: name: legacy-dsvm-base abstract: true description: | Base job (bionic) for autoconverted legacy devstack-gate jobs This job runs devstack-gate with as few changes as possible and may be used by jobs which have been automatically converted as part of the migration to Zuul v3. This job runs on Bionic from stable/stein on. branches: ^(?!stable/(ocata|pike|queens|rocky)).*$ nodeset: legacy-ubuntu-bionic pre-run: playbooks/legacy/pre.yaml required-projects: - openstack/devstack - openstack/devstack-gate - openstack/tripleo-ci - openstack/ceilometer - openstack/ceilometermiddleware - openstack/cinder - openstack/glance - openstack/glance_store - openstack/heat - openstack/heat-cfntools - openstack/heat-templates - openstack/horizon - openstack/keystone - openstack/keystoneauth - openstack/keystonemiddleware - openstack/manila - openstack/manila-ui - openstack/neutron - openstack/neutron-fwaas - openstack/neutron-vpnaas - openstack/nova - openstack/octavia - openstack/os-apply-config - openstack/os-brick - openstack/os-client-config - openstack/os-collect-config - openstack/os-net-config - openstack/os-refresh-config - openstack/osc-lib # NOTE(mriedem): The openstack/placement repo is new in Stein and will # be ignored on stable branches before Stein. - openstack/placement - openstack/requirements - openstack/swift - openstack/tempest - openstack/tripleo-heat-templates - openstack/tripleo-image-elements - openstack/zaqar - job: name: legacy-dsvm-base-multinode abstract: true parent: legacy-dsvm-base description: | Base job (xenial) for multinode devstack jobs. Will setup firewall rules on all the nodes allowing them to talk to each other. This job runs on Xenial for stable/ocata, pike, queens and rocky. This job is prepared to make sure all stable branches before stable/stein will keep running on xenial. roles: - zuul: zuul/zuul-jobs pre-run: playbooks/legacy/multinode-networking/pre.yaml nodeset: legacy-ubuntu-xenial-2-node branches: - stable/ocata - stable/pike - stable/queens - stable/rocky - job: name: legacy-dsvm-base-multinode abstract: true parent: legacy-dsvm-base description: | Base job (bionic) for multinode devstack jobs. Will setup firewall rules on all the nodes allowing them to talk to each other. This job runs on Bionic from stable/stein on. roles: - zuul: zuul/zuul-jobs pre-run: playbooks/legacy/multinode-networking/pre.yaml branches: ^(?!stable/(ocata|pike|queens|rocky)).*$ nodeset: legacy-ubuntu-bionic-2-node - job: name: legacy-publish-openstack-artifacts abstract: true parent: publish-openstack-artifacts description: | Base job (xenial) for autoconverted legacy jobs that publish artifacts This job runs on Xenial for stable/ocata, pike, queens and rocky. This job is prepared to make sure all stable branches before stable/stein will keep running on xenial. nodeset: devstack-single-node pre-run: playbooks/legacy/pre.yaml branches: - stable/ocata - stable/pike - stable/queens - stable/rocky - job: name: legacy-publish-openstack-artifacts abstract: true parent: publish-openstack-artifacts description: | Base job (bionic) for autoconverted legacy jobs that publish artifacts. This job runs on Bionic from stable/stein on. branches: ^(?!stable/(ocata|pike|queens|rocky)).*$ nodeset: legacy-ubuntu-bionic pre-run: playbooks/legacy/pre.yaml - job: name: project-config-gerrit parent: tox description: | Runs checks on gerrit-related configuration. Uses ``gerrit`` tox env. vars: tox_envlist: gerrit files: - ^gerrit/acls/.*$ - bindep.txt - tools/check_valid_gerrit_projects.py - gerrit/projects.yaml - other-requirements.txt - tools/check_projects_yaml_alphabetized.sh - tools/check_valid_gerrit_config.sh - tox.ini - zuul/main.yaml - job: name: project-config-grafyaml parent: tox description: | Runs checks on grafyaml configuration with the ``grafyaml`` tox env. vars: tox_envlist: grafyaml tox_environment: GRAFYAML_SRC: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/opendev/grafyaml'].src_dir }}" required-projects: - opendev/grafyaml files: - ^grafana/.*$ - bindep.txt - other-requirements.txt - tox.ini - job: name: project-config-grafana description: | Validates import and creates screenshots of project-config defined graphs. run: playbooks/grafana/main.yaml post-run: playbooks/grafana/post.yaml required-projects: - openstack/project-config dependencies: - name: opendev-buildset-registry - name: grafyaml-build-image soft: true - job: name: project-config-irc-access parent: tox description: | Runs checks on IRC configuration with the ``irc`` tox env. vars: tox_envlist: irc files: - bindep.txt - accessbot/channels.yaml - gerritbot/channels.yaml - other-requirements.txt - tools/check_irc_access.py - tools/check_channels_yaml.sh - tools/irc_tests.py - tools/normalize_channels_yaml.py - tools/projectconfig_yamllib.py - tox.ini - job: name: project-config-nodepool parent: tox description: | Runs checks on nodepool configuration with the ``nodepool`` tox env. vars: tox_envlist: nodepool required-projects: - zuul/nodepool files: - ^nodepool/nodepool.yaml - ^nodepool/nl.*yaml$ - bindep.txt - other-requirements.txt - tox.ini - job: name: build-openstack-specs-site parent: opendev-tox-docs description: | Generates the index page of http://specs.openstack.org/. vars: tox_envlist: specs sphinx_build_dir: specs - job: name: project-config-dib parent: tox description: | Runs diskimage-builder on all elements in project-config. Uses the ``dib`` tox env. vars: tox_envlist: dib files: - ^nodepool/elements/.*$ - bindep.txt - other-requirements.txt - tox.ini - job: name: project-config-infra-docs-index parent: opendev-tox-docs description: | Generates the index page for https://docs.openstack.org/infra/. vars: tox_envlist: infra-docs sphinx_build_dir: docs-site - job: name: openafs-rpm-package-build description: | There are no official builds for AFS on Centos, hence we build our own and publish them to tarballs.openstack.org for our centos hosts that need access to the mirror to consume. run: playbooks/openafs-rpm-package-build/run.yaml files: &afs-files - playbooks/openafs-rpm-package-build - roles/openafs-rpm-package-build - job: name: openafs-rpm-package-build-centos-7-x86 parent: openafs-rpm-package-build nodeset: centos-7 - job: name: openafs-rpm-package-build-centos-8-stream-x86 parent: openafs-rpm-package-build nodeset: centos-8-stream - job: name: openafs-rpm-package-build-centos-8-stream-arm64 parent: openafs-rpm-package-build nodeset: centos-8-stream-arm64 - job: name: openafs-rpm-package-build-centos-9-stream-x86 parent: openafs-rpm-package-build nodeset: centos-9-stream - job: name: openafs-rpm-package-build-centos-9-stream-arm64 parent: openafs-rpm-package-build nodeset: centos-9-stream-arm64 - job: name: openafs-rpm-package-build-promote description: | Publish the openafs RPM packages parent: publish-openstack-artifacts run: playbooks/openafs-rpm-package-build/publish.yaml files: *afs-files nodeset: nodes: [] # This builds openafs source packages and, with the publishing steps, # pushes them to be built by as an Ubuntu PPA. # # OpenDev has traditionally kept separate OpenAFS packages in a PPA # which are used by production hosts. In the past the LTS distro # versions have had bugs, or lacked support for architectures/kernels # (ARM64 + HWE kernels, practically) we needed -- necessitating keeping # separate, fresh versions. # # Upstream packages keep a PPA at # https://launchpad.net/~openafs/+archive/ubuntu/stable # # As much as possible, we generally import and use their debian/* # infrastructure (including patches, etc.) as a base. This PPA # doesn't build all the architectures we need, but also isn't focused # on the immediate needs of OpenDev production; thus despite it's # regular maintence it is still helpful for us to have our own package # builds. These problems are much less with current distros (>= 2022) # and openafs 1.8 series; our goal is to generally carry no # differences. # # Note the openafs-rpm-package-build jobs are a counter-part to this, as # OpenAFS hasn't been available on RPM distros. We try to keep these in # sync so our infrastructure is more or less at the same level. - job: name: openafs-deb-package-build description: | Build OpenAFS packages for OpenDev PPA provides: openafs-deb-packages run: playbooks/openafs-deb-package-build/run.yaml - job: name: openafs-deb-package-build-promote requires: openafs-deb-packages description: | Publish the openafs deb packages to OpenDev PPA run: playbooks/openafs-deb-package-build/publish.yaml secrets: - secret: openstack_ci_ppa_upload_key name: gpg_key - job: name: vhd-util-deb-package-build description: | Build vhd-util packages for OpenDev PPA provides: vhd-util-deb-packages run: playbooks/vhd-util-deb-package-build/run.yaml - job: name: vhd-util-deb-package-build-promote requires: vhd-util-deb-packages description: | Publish the vhd-util deb packages to OpenDev PPA run: playbooks/vhd-util-deb-package-build/publish.yaml secrets: - secret: openstack_ci_ppa_upload_key name: gpg_key - job: name: openstack-zuul-jobs-linters parent: tox description: | This job runs against base-jobs, project-config, openstack-zuul-jobs and zuul-jobs so we can properly lint our ansible playbooks / roles. required-projects: - opendev/base-jobs - openstack/openstack-zuul-jobs - openstack/project-config - opendev/system-config - zuul/zuul-jobs vars: tox_envlist: linters tox_environment: ANSIBLE_ROLES_PATH: ~/src/opendev.org/opendev/base-jobs/roles:~/src/opendev.org/zuul/zuul-jobs/roles:~/src/opendev.org/openstack/openstack-zuul-jobs/roles:~/src/opendev.org/openstack/project-config/roles:~/src/opendev.org/opendev/system-config/roles - job: name: ansible-role-functional-base abstract: true parent: tox description: | Run functional functional tests for ansible-role projects. Uses tox with the ``functional`` environment. pre-run: playbooks/ansible-role-functional/pre.yaml run: playbooks/tox-with-sudo/run.yaml vars: tox_envlist: functional - job: name: ansible-role-functional-centos-7 parent: ansible-role-functional-base nodeset: centos-7 - job: name: ansible-role-functional-ubuntu-xenial parent: ansible-role-functional-base - job: name: golang-base parent: unittests abstract: true description: | Base job for golang tests. pre-run: playbooks/golang/pre.yaml run: playbooks/golang/run.yaml - job: name: golang-fmt parent: golang-base description: | Run golang fmt test. This uses the make target ``fmt``. vars: golang_target: "fmt" - job: name: golang-unit parent: golang-base description: | Run golang unit test. This uses the make target ``test``. vars: golang_target: "test" - job: name: openstack-infra-extra-integration description: | Runs non-base roles that are used within various jobs to prevent regressions. As opposed to base roles, these may run in a limited set of environments or have other simplifying assumptions. abstract: true protected: true parent: base required-projects: - openstack/project-config roles: - zuul: zuul/zuul-jobs run: tests/extra.yaml files: - ^zuul.d/* - ^roles/prepare-zanata-client/.* - ^tests/.* # NOTE(ianw): This test restricted to the two node types these roles # run on in the gate. - job: name: openstack-infra-extra-integration-xenial parent: openstack-infra-extra-integration nodeset: ubuntu-xenial - job: name: openstack-infra-extra-integration-bionic parent: openstack-infra-extra-integration nodeset: ubuntu-bionic - job: name: build-wheel-cache-base abstract: true description: | Base job for building wheels published in OpenStack CI mirrors. pre-run: - playbooks/wheel-cache/pre.yaml run: playbooks/wheel-cache/build.yaml post-run: playbooks/wheel-cache/post-base.yaml # 2.5 hours timeout: 9000 required-projects: - name: openstack/requirements # The job iterates over all branches, so we only need to run it on # master. branches: master # The publish jobs use kerberos/openafs roles in pre/post # playbooks, so this needs to be included here in the parent. roles: - zuul: opendev/system-config vars: bindep_dir: "{{ zuul.projects['opendev.org/openstack/requirements'].src_dir }}" - job: name: build-wheel-cache-centos-7 parent: build-wheel-cache-base description: | Build CentOS 7 wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-centos-7-python2 label: centos-7 - name: wheel-cache-centos-7-python3 label: centos-7 host-vars: wheel-cache-centos-7-python2: wheel_python: python2 wheel-cache-centos-7-python3: wheel_python: python3 - job: name: build-wheel-cache-centos-9-stream parent: build-wheel-cache-base description: | Build CentOS 9 wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-centos-9-stream-python3 label: centos-9-stream host-vars: wheel-cache-centos-9-stream-python3: wheel_python: python3 - job: name: build-wheel-cache-centos-9-stream-arm64 parent: build-wheel-cache-base description: | Build CentOS 9 wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-centos-9-stream-arm64-python3 label: centos-9-stream-arm64 host-vars: wheel-cache-centos-9-stream-arm64-python3: wheel_python: python3 - job: name: build-wheel-cache-centos-8-stream parent: build-wheel-cache-base description: | Build CentOS 8 wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-centos-8-stream-python3 label: centos-8-stream host-vars: wheel-cache-centos-8-stream-python3: wheel_python: python3 - job: name: build-wheel-cache-centos-8-stream-arm64 parent: build-wheel-cache-base description: | Build CentOS 8 wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-centos-8-stream-arm64-python3 label: centos-8-stream-arm64 host-vars: wheel-cache-centos-8-stream-arm64-python3: wheel_python: python3 - job: name: build-wheel-cache-debian-bullseye parent: build-wheel-cache-base description: | Build Debian bullseye wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-debian-bullseye-python3 label: debian-bullseye host-vars: wheel-cache-debian-bullseye-python3: wheel_python: python3 - job: name: build-wheel-cache-debian-bullseye-arm64 parent: build-wheel-cache-base description: | Build Debian bullseye wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-debian-bullseye-arm64-python3 label: debian-bullseye-arm64 host-vars: wheel-cache-debian-bullseye-arm64-python3: wheel_python: python3 - job: name: build-wheel-cache-debian-buster parent: build-wheel-cache-base description: | Build Debian buster wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-debian-buster-python2 label: debian-buster - name: wheel-cache-debian-buster-python3 label: debian-buster host-vars: wheel-cache-debian-buster-python2: wheel_python: python2 wheel-cache-debian-buster-python3: wheel_python: python3 - job: name: build-wheel-cache-debian-buster-arm64 parent: build-wheel-cache-base description: | Build Debian buster wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-debian-buster-arm64-python2 label: debian-buster-arm64 - name: wheel-cache-debian-buster-arm64-python3 label: debian-buster-arm64 host-vars: wheel-cache-debian-buster-arm64-python2: wheel_python: python2 wheel-cache-debian-buster-arm64-python3: wheel_python: python3 - job: name: build-wheel-cache-ubuntu-jammy parent: build-wheel-cache-base description: | Build Ubuntu Jammy wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-ubuntu-jammy-python3 label: ubuntu-jammy host-vars: wheel-cache-ubuntu-jammy-python3: wheel_python: python3 - job: name: build-wheel-cache-ubuntu-jammy-arm64 parent: build-wheel-cache-base description: | Build Ubuntu Jammy wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-ubuntu-jammy-arm64-python3 label: ubuntu-jammy-arm64 host-vars: wheel-cache-ubuntu-jammy-arm64-python3: wheel_python: python3 - job: name: build-wheel-cache-ubuntu-focal parent: build-wheel-cache-base description: | Build Ubuntu Focal wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-ubuntu-focal-python3 label: ubuntu-focal host-vars: wheel-cache-ubuntu-focal-python3: wheel_python: python3 - job: name: build-wheel-cache-ubuntu-focal-arm64 parent: build-wheel-cache-base description: | Build Ubuntu Focal wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-ubuntu-focal-arm64-python3 label: ubuntu-focal-arm64 host-vars: wheel-cache-ubuntu-focal-arm64-python3: wheel_python: python3 - job: name: build-wheel-cache-ubuntu-bionic parent: build-wheel-cache-base description: | Build Ubuntu Bionic wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-ubuntu-bionic-python2 label: ubuntu-bionic - name: wheel-cache-ubuntu-bionic-python3 label: ubuntu-bionic host-vars: wheel-cache-ubuntu-bionic-python2: wheel_python: python2 wheel-cache-ubuntu-bionic-python3: wheel_python: python3 - job: name: build-wheel-cache-ubuntu-bionic-arm64 parent: build-wheel-cache-base description: | Build Ubuntu Bionic wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-ubuntu-bionic-arm64-python2 label: ubuntu-bionic-arm64 - name: wheel-cache-ubuntu-bionic-arm64-python3 label: ubuntu-bionic-arm64 host-vars: wheel-cache-ubuntu-bionic-arm64-python2: wheel_python: python2 wheel-cache-ubuntu-bionic-arm64-python3: wheel_python: python3 - job: name: build-wheel-cache-ubuntu-xenial parent: build-wheel-cache-base description: | Build Ubuntu Xenial wheels for OpenStack CI mirrors. nodeset: nodes: - name: wheel-cache-ubuntu-xenial-python2 label: ubuntu-xenial - name: wheel-cache-ubuntu-xenial-python3 label: ubuntu-xenial host-vars: wheel-cache-ubuntu-xenial-python2: wheel_python: python2 wheel-cache-ubuntu-xenial-python3: wheel_python: python3