# Shared jobs specific to the OpenStack Project # imports jobs from: # https://opendev.org/openstack/project-config # https://opendev.org/zuul/zuul-jobs - job: name: openstack-tox abstract: true parent: tox-fips nodeset: ubuntu-jammy description: | Base job to run tox jobs with OpenStack project specific updates. Processing upper-constraints files from openstack/requirements. branches: regex: ^stable/(victoria|wallaby|xena|yoga|zed)$ negate: true 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-fips nodeset: ubuntu-focal description: | Base job (Focal) to run tox jobs with OpenStack project specific updates. Processing upper-constraints files from openstack/requirements. This job runs on Focal from stable/victoria until stable/zed. This job is prepared to make sure all stable branches from stable/victoria until stable/zed will keep running on Focal. branches: - ^.*/victoria - ^.*/wallaby - ^.*/xena - ^.*/yoga - ^.*/zed required-projects: - name: openstack/requirements vars: tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' enable_fips: false # NOTE(gmann): This is stable|unmaintained branch (<=(stable|unmaintained)/zed) # job and new tox 4 require some changes in tox.ini to be compatible with it. Let's # pin tox <4 for stable branches testing (<=(stable|unmaintained)/zed). ensure_tox_version: '<4' - 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. pre-run: playbooks/tox/py27.yaml irrelevant-files: &common-irrelevant-files - ^.*\.rst$ - ^api-ref/.*$ - ^doc/.*$ - ^releasenotes/.*$ - ^deliverables/.*$ vars: tox_envlist: py27 bindep_profile: test py27 # NOTE(gmann): This is stable branch job and new tox 4 require # some changes in tox.ini to be compatible with it. Let's # pin tox <4 for stable branches testing (<=stable/zed). ensure_tox_version: '<4' - job: name: openstack-tox-py35 parent: openstack-tox nodeset: ubuntu-xenial branches: regex: ^driverfixes/.*$ negate: true 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 # NOTE(gmann): This is stable branch job and new tox 4 require # some changes in tox.ini to be compatible with it. Let's # pin tox <4 for stable branches testing (<=stable/zed). ensure_tox_version: '<4' - 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 # NOTE(gmann): This is stable branch job and new tox 4 require # some changes in tox.ini to be compatible with it. Let's # pin tox <4 for stable branches testing (<=stable/zed). ensure_tox_version: '<4' - 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' # NOTE(gmann): This is stable branch job and new tox 4 require # some changes in tox.ini to be compatible with it. Let's # pin tox <4 for stable branches testing (<=stable/zed). ensure_tox_version: '<4' - 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: regex: ^stable/(victoria|wallaby|xena|yoga|zed)$ negate: true vars: tox_envlist: py38 bindep_profile: test py38 python_version: '3.8' - 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 on ubuntu focal. This job runs with tox<4 from stable/victortia till stable/zed. Uses tox with the ``py38`` environment. irrelevant-files: *common-irrelevant-files branches: - ^.*/victoria - ^.*/wallaby - ^.*/xena - ^.*/yoga - ^.*/zed vars: tox_envlist: py38 bindep_profile: test py38 python_version: '3.8' # NOTE(gmann): This is stable branch (<=(stable|unmaintained)/zed) job and new # tox 4 require some changes in tox.ini to be compatible with it. Let's # pin tox <4 for stable branches testing (<=(stable|unmaintained)/zed). ensure_tox_version: '<4' - 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 branches: regex: ^stable/(victoria|wallaby|xena|yoga|zed)$ negate: true vars: tox_envlist: py39 bindep_profile: test py39 python_version: '3.9' - 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 version <4 with the ``py39`` environment. irrelevant-files: *common-irrelevant-files branches: - ^.*/victoria - ^.*/wallaby - ^.*/xena - ^.*/yoga - ^.*/zed vars: tox_envlist: py39 bindep_profile: test py39 python_version: '3.9' # NOTE(gmann): This is stable branch (<=(stable|unmaintained)/zed) job and new # tox 4 require some changes in tox.ini to be compatible with it. Let's # pin tox <4 for stable branches testing (<=(stable|unmaintained)/zed). ensure_tox_version: '<4' - 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 branches: regex: ^.*/(yoga|zed)$ negate: true vars: tox_envlist: py310 bindep_profile: test py310 python_version: '3.10' - 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 version <4 with the ``py310`` environment. irrelevant-files: *common-irrelevant-files branches: - ^.*/yoga - ^.*/zed vars: tox_envlist: py310 bindep_profile: test py310 python_version: '3.10' # NOTE(gmann): This is stable branch (<=/(stable|unmaintained)/zed) job and new # tox 4 require some changes in tox.ini to be compatible with it. Let's # pin tox <4 for stable branches testing (<=(stable|unmaintained)/zed). ensure_tox_version: '<4' - job: name: openstack-tox-py310-arm64 parent: openstack-tox-py310 nodeset: ubuntu-jammy-arm64 timeout: 3600 description: | Run unit tests for an OpenStack Python project under cPython version 3.10 on top of arm64 architecture. Uses tox with the ``py310`` environment in arm64 platform. - job: name: openstack-tox-py311 parent: openstack-tox nodeset: debian-bookworm timeout: 2400 description: | Run unit tests for an OpenStack Python project under cPython version 3.11. Uses tox with the ``py311`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: py311 bindep_profile: test py311 python_version: '3.11' - job: name: openstack-tox-py311-arm64 parent: openstack-tox-py311 nodeset: debian-bookworm-arm64 timeout: 3600 description: | Run unit tests for an OpenStack Python project under cPython version 3.11 on top of arm64 architecture. Uses tox with the ``py311`` environment in arm64 platform. - job: name: openstack-tox-py312 parent: openstack-tox nodeset: ubuntu-noble timeout: 2400 description: | Run unit tests for an OpenStack Python project under cPython version 3.12. Uses tox with the ``py312`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: py312 bindep_profile: test py312 python_version: '3.12' - job: name: openstack-tox-py312-arm64 parent: openstack-tox-py312 nodeset: ubuntu-noble-arm64 timeout: 3600 description: | Run unit tests for an OpenStack Python project under cPython version 3.12 on top of arm64 architecture. Uses tox with the ``py312`` environment in arm64 platform. - job: name: openstack-tox-py313 parent: openstack-tox nodeset: ubuntu-noble timeout: 2400 description: | Run unit tests for an OpenStack Python project under cPython version 3.13. Uses tox with the ``py313`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: py313 bindep_profile: test py313 python_use_pyenv: True python_version: '3.13' - job: name: openstack-tox-py313-arm64 parent: openstack-tox-py313 nodeset: ubuntu-noble-arm64 timeout: 3600 description: | Run unit tests for an OpenStack Python project under cPython version 3.13 on top of arm64 architecture. Uses tox with the ``py313`` environment in arm64 platform. - 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-jammy branches: regex: ^.*/(victoria|wallaby|xena|yoga|zed)$ negate: true required-projects: - name: openstack/requirements irrelevant-files: *common-irrelevant-files 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. Uses tox with the ``cover`` environment. This job runs on focal from stable/victoria until stable/zed. nodeset: ubuntu-focal branches: - ^.*/victoria - ^.*/wallaby - ^.*/xena - ^.*/yoga - ^.*/zed required-projects: - name: openstack/requirements irrelevant-files: *common-irrelevant-files vars: tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt' # NOTE(gmann): This is stable branch (<=(stable|unmaintained)/zed) job and new # tox 4 require some changes in tox.ini to be compatible with it. Let's # pin tox <4 for stable branches testing (<=(stable|unmaintained)/zed). ensure_tox_version: '<4' timeout: 3000 - 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 nodeset: ubuntu-jammy branches: regex: ^.*/(victoria|wallaby|xena|yoga|zed)$ negate: true vars: tox_envlist: functional - 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. This job runs on focal from stable/victoria until stable/zed. irrelevant-files: *common-irrelevant-files nodeset: ubuntu-focal branches: regex: ^.*/(victoria|wallaby|xena|yoga|zed)$ 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 nodeset: ubuntu-jammy branches: regex: ^.*/(victoria|wallaby|xena|yoga|zed)$ negate: true 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. This job runs on focal from stable/victoria until stable/zed. irrelevant-files: *common-irrelevant-files nodeset: ubuntu-focal branches: regex: ^.*/(victoria|wallaby|xena|yoga|zed)$ 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 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-py311 parent: openstack-tox nodeset: debian-bookworm description: | Run tox-based functional tests for an OpenStack Python project under cPython version 3.11. Uses tox with the ``functional-py311`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: functional-py311 bindep_profile: test py311 python_version: '3.11' - job: name: openstack-tox-functional-py312 parent: openstack-tox nodeset: ubuntu-noble description: | Run tox-based functional tests for an OpenStack Python project under cPython version 3.12. Uses tox with the ``functional-py312`` environment. irrelevant-files: *common-irrelevant-files vars: tox_envlist: functional-py312 bindep_profile: test py312 python_use_pyenv: True python_version: '3.12' - 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 # NOTE(jamespage) most snaps pull in and compile quite a bit of Python # with native extensions - the default of 30 mins is not sufficient. timeout: 3600 vars: tox_envlist: snap - job: name: openstack-tox-docs parent: opendev-tox-docs nodeset: ubuntu-jammy 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: regex: ^stable/(victoria|wallaby|xena|yoga|zed)$ negate: true 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 (focal). Uses tox with the ``docs`` environment. This job runs on focal from stable/victoria until stable/zed. .. 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 # NOTE(gmann): This is stable branch (<=(stable|unmaintained)/zed) job and new # tox 4 require some changes in tox.ini to be compatible with it. Let's # pin tox <4 for stable branches testing (<=(stable|unmaintained)/zed). ensure_tox_version: '<4' nodeset: ubuntu-focal # 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: - ^.*/victoria - ^.*/wallaby - ^.*/xena - ^.*/yoga - ^.*/zed - job: name: openstack-tox-py39-with-oslo-master parent: openstack-tox-py39 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. required-projects: &oslo-master-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 branches: master timeout: 3000 vars: tox_install_siblings: true - job: name: openstack-tox-py310-with-oslo-master parent: openstack-tox-py310 nodeset: ubuntu-jammy description: | This job installs all oslo libraries from source and tests that the unit tests of the tested project work. It uses the tox ``py310`` environment. The job is normally run in a periodic pipeline, it is configured to run on the master branch. required-projects: *oslo-master-required-projects branches: master timeout: 3000 vars: tox_install_siblings: true - job: name: openstack-tox-py311-with-oslo-master parent: openstack-tox-py311 nodeset: ubuntu-jammy description: | This job installs all oslo libraries from source and tests that the unit tests of the tested project work. It uses the tox ``py311`` environment. The job is normally run in a periodic pipeline, it is configured to run on the master branch. required-projects: *oslo-master-required-projects branches: master timeout: 3000 vars: tox_install_siblings: true - job: name: openstack-tox-py312-with-oslo-master parent: openstack-tox-py312 description: | This job installs all oslo libraries from source and tests that the unit tests of the tested project work. It uses the tox ``py312`` environment. The job is normally run in a periodic pipeline, it is configured to run on the master branch. required-projects: *oslo-master-required-projects branches: master timeout: 3000 vars: tox_install_siblings: true - 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-py310-with-neutron-lib-master parent: openstack-tox-py310 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 ``py310`` 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-py311-with-neutron-lib-master parent: openstack-tox-py311 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 ``py311`` 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-py312-with-neutron-lib-master parent: openstack-tox-py312 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 ``py312`` 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-py310-with-ovsdbapp-master parent: openstack-tox-py310 timeout: 3000 description: | This job installs ovsdbapp from source and tests that the unit tests of the tested project work. It uses the tox ``py310`` 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-py311-with-ovsdbapp-master parent: openstack-tox-py311 timeout: 3000 description: | This job installs ovsdbapp from source and tests that the unit tests of the tested project work. It uses the tox ``py311`` 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-py312-with-ovsdbapp-master parent: openstack-tox-py312 timeout: 3000 description: | This job installs ovsdbapp from source and tests that the unit tests of the tested project work. It uses the tox ``py312`` 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: regex: ^driverfixes/.*$ negate: true 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. nodeset: ubuntu-jammy 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: regex: ^driverfixes/.*$ negate: true parent: build-reno-releasenotes nodeset: ubuntu-jammy 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: 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 nodeset: legacy-ubuntu-bionic - 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. nodeset: legacy-ubuntu-bionic pre-run: playbooks/legacy/pre.yaml required-projects: - openstack/devstack - 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/nova - openstack/octavia - openstack/os-apply-config - openstack/os-brick - openstack/os-client-config - openstack/os-collect-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/zaqar - 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. 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 - tools/normalize_acl.py - tox.ini - zuul/main.yaml - 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. nodeset: debian-bookworm 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-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-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 node type these roles # run on in the gate. - 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-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-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-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: openstack-multinode-fips abstract: true parent: openstack-fips description: | Base job for OpenStack jobs to enable mutinode jobs while being able to enable FIPS by specifying enable_fips as True. pre-run: - playbooks/fips/enable-fips.yaml - playbooks/multinode/enable-multinode.yaml