openstack-zuul-jobs/zuul.d/jobs.yaml
Clark Boylan 60acea0da6 Run latest ansible-lint on Ubuntu Noble
We bump the Ansible version to the version that Zuul runs. We then set
ansible-lint to the current latest version. This results in a number of
new linter violations which we fix. These violations include:

 * Needing to name plays
 * Needing to start names with a capital letter
 * Using fully qualified names for action modules
 * Quoting permissions strings to avoid octal conversion errors
 * Using explicit yaml structures for tasks

We also tell ansible-lint to mock zuul_return so that we don't get
errors from it complaining that this module is not defined.

Change-Id: Ic881313fea58f4482f70e493f3d256541d31860a
2024-10-07 12:36:32 -07:00

1703 lines
49 KiB
YAML

# 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