openstack-zuul-jobs/zuul.d/jobs.yaml

847 lines
22 KiB
YAML

# Shared jobs specific to the OpenStack Project
# imports jobs from:
# https://git.openstack.org/cgit/openstack-infra/project-config
# https://git.openstack.org/cgit/openstack-infra/zuul-jobs
- job:
name: base-integration
description: |
Runs roles that are included by default in the 'base' job in order to
prevent regressions.
parent: base-minimal
required-projects:
- openstack-infra/project-config
roles:
- zuul: openstack-infra/zuul-jobs
run: tests/base.yaml
files:
- ^roles/configure-mirror/.*
- ^roles/configure-unbound/.*
- ^roles/emit-job-header/.*
- ^roles/fetch-zuul-cloner/.*
- ^roles/mirror-info/.*
- ^roles/set-zuul-log-path-fact/.*
- ^roles/use-cached-repos/.*
- ^tests/.*
- job:
name: base-integration-centos-7
parent: base-integration
nodeset: centos-7
- job:
name: base-integration-debian-jessie
parent: base-integration
nodeset: debian-jessie
- job:
name: base-integration-fedora-26
parent: base-integration
nodeset: fedora-26
- job:
name: base-integration-opensuse423
parent: base-integration
nodeset: opensuse-423
- job:
name: base-integration-ubuntu-trusty
parent: base-integration
nodeset: ubuntu-trusty
- job:
name: base-integration-ubuntu-xenial
parent: base-integration
nodeset: ubuntu-xenial
- job:
name: multinode-integration
description: |
Runs roles that are included by default in the 'multinode' job in order
to prevent regressions.
parent: base-minimal
vars:
ara_generate_html: true
required-projects:
- openstack-infra/project-config
roles:
- zuul: openstack-infra/zuul-jobs
run: tests/multinode.yaml
files:
- ^roles/configure-mirror/.*
- ^roles/configure-unbound/.*
- ^roles/emit-job-header/.*
- ^roles/fetch-zuul-cloner/.*
- ^roles/mirror-info/.*
- ^roles/set-zuul-log-path-fact/.*
- ^roles/use-cached-repos/.*
- ^roles/multi-node-bridge/.*
- ^roles/multi-node-firewall/.*
- ^roles/multi-node-hosts-file/.*
- ^roles/multi-node-known-hosts/.*
- ^tests/.*
- job:
name: multinode-integration-centos-7
parent: multinode-integration
nodeset:
nodes:
- name: primary
label: centos-7
- name: secondary
label: centos-7
groups:
- name: switch
nodes:
- primary
- name: peers
nodes:
- secondary
- job:
name: multinode-integration-debian-jessie
parent: multinode-integration
nodeset:
nodes:
- name: primary
label: debian-jessie
- name: secondary
label: debian-jessie
groups:
- name: switch
nodes:
- primary
- name: peers
nodes:
- secondary
- job:
name: multinode-integration-fedora-26
parent: multinode-integration
nodeset:
nodes:
- name: primary
label: fedora-26
- name: secondary
label: fedora-26
groups:
- name: switch
nodes:
- primary
- name: peers
nodes:
- secondary
- job:
name: multinode-integration-opensuse423
parent: multinode-integration
nodeset:
nodes:
- name: primary
label: opensuse-423
- name: secondary
label: opensuse-423
groups:
- name: switch
nodes:
- primary
- name: peers
nodes:
- secondary
- job:
name: multinode-integration-ubuntu-trusty
parent: multinode-integration
nodeset:
nodes:
- name: primary
label: ubuntu-trusty
- name: secondary
label: ubuntu-trusty
groups:
- name: switch
nodes:
- primary
- name: peers
nodes:
- secondary
- job:
name: multinode-integration-ubuntu-xenial
parent: multinode-integration
nodeset:
nodes:
- name: primary
label: ubuntu-xenial
- name: secondary
label: ubuntu-xenial
groups:
- name: switch
nodes:
- primary
- name: peers
nodes:
- secondary
- job:
name: build-openstack-sphinx-docs
parent: tox-docs
branches: ^(?!driverfixes/).*$
description: |
Builds documentation using Sphinx per 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.
run: playbooks/sphinx-docs/run.yaml
success-url: html/
required-projects:
- name: openstack/requirements
roles:
- zuul: openstack-infra/zuul-jobs
vars:
tox_constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt'
tox_envlist: venv
tox_extra_args: -vv python setup.py build_sphinx
- job:
name: tox-py35-on-zuul
parent: tox-py35
description: |
Run zuul's py35 unittests on patches to zuul-jobs
vars:
zuul_work_dir: src/git.openstack.org/openstack-infra/zuul
required-projects:
- name: openstack-infra/zuul
override-checkout: feature/zuulv3
- job:
name: openstack-tox
parent: tox
description: |
Base job to run tox jobs with OpenStack project specific updates.
Processing upper-constraints files from openstack/requirements.
required-projects:
- name: openstack/requirements
vars:
tox_constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt'
- job:
name: openstack-tox-py27
parent: openstack-tox
description: |
Run unit tests for an OpenStack Python project under cPython version 2.7.
Uses tox with the ``py27`` environment.
irrelevant-files:
- ^.*\.rst$
- ^doc/.*$
- ^releasenotes/.*$
vars:
tox_envlist: py27
bindep_profile: test py27
- job:
name: openstack-tox-py35
parent: openstack-tox
branches: ^(?!driverfixes/).*$
description: |
Run unit tests for an OpenStack project under cPython version 3.5.
Uses tox with the ``py35`` environment.
irrelevant-files:
- ^.*\.rst$
- ^doc/.*$
- ^releasenotes/.*$
- ^deliverables/.*$
vars:
tox_envlist: py35
bindep_profile: test py35
- 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:
- ^.*\.rst$
- ^doc/.*$
- ^releasenotes/.*$
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-pep8
parent: openstack-tox
description: |
Runs code pep8 tests.
Uses tox with the ``pep8`` environment.
vars:
tox_envlist: pep8
bindep_profile: test pep8
- job:
name: openstack-tox-cover
parent: tox-cover
description: |
Run code coverage tests.
Uses tox with the ``cover`` environment.
required-projects:
- name: openstack/requirements
irrelevant-files:
- ^.*\.rst$
- ^doc/.*$
- ^releasenotes/.*$
success-url: cover/
vars:
tox_constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt'
- 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 functional tests.
Uses tox with the ``functional`` environment.
irrelevant-files:
- ^.*\.rst$
- ^doc/.*$
- ^releasenotes/.*$
vars:
tox_envlist: functional
- job:
name: openstack-tox-functional-py35
parent: openstack-tox
description: |
Run functional tests using python 3.5.
Uses tox with the ``functional-py35`` environment.
irrelevant-files:
- ^.*\.rst$
- ^doc/.*$
- ^releasenotes/.*$
vars:
tox_envlist: functional-py35
- job:
name: openstack-tox-validate
parent: openstack-tox
description: |
Run validate tests.
Uses tox with the ``validate`` environment.
vars:
tox_envlist: validate
- job:
name: openstack-tox-pylint
parent: openstack-tox
description: |
Runs pylint tests.
Uses tox with the ``pylint`` environment.
irrelevant-files:
- ^.*\.rst$
- ^doc/.*$
- ^releasenotes/.*$
vars:
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: 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-python-tarball
parent: publish-openstack-artifacts
description: |
Publish the results of the tox-tarball job to tarballs.openstack.org.
run: playbooks/python-tarball/run.yaml
post-run: playbooks/python-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-infra/release-tools
- 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.
timeout: 1800
required-projects:
- name: openstack/requirements
vars:
constraints_file: '{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt'
- job:
name: build-openstack-api-ref
parent: openstack-tox
description: |
Build api-ref document. This is only run on master branch of a
project.
success-url: html/
post-run: playbooks/build-api-ref/post.yaml
timeout: 1800
vars:
tox_envlist: api-ref
# We only publish the master branch, so no need to run
# for changes on other branches.
branches: master
files:
- ^tox.ini$
- ^api-ref/.*
- ^doc/api_samples/.*
- bindep.txt
- other-requirements.txt
- job:
name: build-openstack-api-guide
parent: openstack-tox
description: |
Build api-guide document. This is only run for changes on master
branch of a project.
success-url: html/
post-run: playbooks/build-api-guide/post.yaml
timeout: 1800
vars:
tox_envlist: api-guide
# We only publish the master branch, so no need to run
# for changes on other branches.
branches: master
files:
- ^tox.ini$
- ^api-guide/.*
- bindep.txt
- other-requirements.txt
- job:
name: build-openstack-deploy-guide
parent: openstack-tox
description: |
Build deploy-guide document.
success-url: html/
post-run: playbooks/build-deploy-guide/post.yaml
timeout: 1800
vars:
tox_envlist: deploy-guide
files:
- ^tox.ini$
- ^deploy-guide/.*
- bindep.txt
- other-requirements.txt
- job:
name: build-openstack-install-guide
parent: openstack-tox
description: |
Build install-guide document.
success-url: html/
post-run: playbooks/build-install-guide/post.yaml
timeout: 1800
vars:
tox_envlist: install-guide
# This job runs only pre-pike, with pike the documents have been
# integrated into normal builds.
branches:
- stable/newton
- stable/ocata
files:
- ^tox.ini$
- ^install-guide/.*
- bindep.txt
- other-requirements.txt
- job:
name: build-placement-api-ref
parent: openstack-tox
description: |
Build placement-api-ref document. This job runs only on master branch.
success-url: html/
post-run: playbooks/build-placement-api-ref/post.yaml
timeout: 1800
# We only publish the master branch, so no need to run
# for changes on other branches.
branches: master
vars:
tox_envlist: placement-api-ref
files:
- ^tox.ini$
- ^placement-api-ref/.*
- bindep.txt
- other-requirements.txt
- job:
name: legacy-base
description: |
Base job for autoconverted legacy jobs
pre-run: playbooks/legacy/pre.yaml
nodeset: legacy-ubuntu-xenial
- job:
name: legacy-dsvm-base
description: |
Base job 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.
nodeset: devstack-single-node
pre-run: playbooks/legacy/pre.yaml
required-projects:
- openstack-dev/devstack
- openstack-infra/devstack-gate
- openstack-infra/tripleo-ci
- openstack/ceilometer
- openstack/ceilometermiddleware
- openstack/cinder
- openstack/django_openstack_auth
- 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-lbaas
- 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
- openstack/requirements
- openstack/swift
- openstack/tempest
- openstack/tempest-lib
- openstack/tripleo-heat-templates
- openstack/tripleo-image-elements
- openstack/tripleo-incubator
- openstack/zaqar
- job:
name: legacy-dsvm-base-multinode
parent: legacy-dsvm-base
description: |
Base job for multinode devstack jobs.
Will setup firewall rules on all the nodes allowing them to talk to
each other.
roles:
- zuul: openstack-infra/zuul-jobs
pre-run: playbooks/legacy/multinode-networking/pre.yaml
- job:
name: legacy-puppet-openstack-integration
description: |
Base job for autoconverted legacy puppet-openstack-integration
This job runs provides the base required projects for
puppet-openstack-integration jobs.
nodeset: devstack-single-node
pre-run: playbooks/legacy/pre.yaml
required-projects:
- openstack/puppet-aodh
- openstack/puppet-barbican
- openstack/puppet-ceilometer
- openstack/puppet-ceph
- openstack/puppet-cinder
- openstack/puppet-cloudkitty
- openstack/puppet-congress
- openstack/puppet-designate
- openstack/puppet-ec2api
- openstack/puppet-glance
- openstack/puppet-gnocchi
- openstack/puppet-heat
- openstack/puppet-horizon
- openstack/puppet-ironic
- openstack/puppet-keystone
- openstack/puppet-manila
- openstack/puppet-mistral
- openstack/puppet-modulesync-configs
- openstack/puppet-monasca
- openstack/puppet-murano
- openstack/puppet-neutron
- openstack/puppet-nova
- openstack/puppet-octavia
- openstack/puppet-openstack-cookiecutter
- openstack/puppet-openstack-integration
- openstack/puppet-openstack_extras
- openstack/puppet-openstacklib
- openstack/puppet-oslo
- openstack/puppet-ovn
- openstack/puppet-panko
- openstack/puppet-qdr
- openstack/puppet-sahara
- openstack/puppet-swift
- openstack/puppet-tacker
- openstack/puppet-tempest
- openstack/puppet-trove
- openstack/puppet-vswitch
- openstack/puppet-vitrage
- openstack/puppet-watcher
- openstack/puppet-zaqar
- openstack/tempest-horizon
- job:
name: legacy-publish-openstack-artifacts
parent: publish-openstack-artifacts
description: |
Base job for autoconverted legacy jobs that publish artifacts
nodeset: devstack-single-node
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
- 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
- job:
name: project-config-grafyaml
parent: tox
description: |
Runs checks on grafyaml configuration with the ``grafyaml`` tox
env.
vars:
tox_envlist: grafyaml
required-projects:
- openstack-infra/grafyaml
files:
- ^grafana/.*$
- bindep.txt
- other-requirements.txt
- tools/grafyaml-validate.sh
- tox.ini
- 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
files:
- ^nodepool/nodepool.yaml
- bindep.txt
- other-requirements.txt
- tox.ini
- job:
name: build-openstack-specs-site
parent: tox
description: |
Generates the index page of http://specs.openstack.org/.
vars:
tox_envlist: specs
files:
- bindep.txt
- specs/.*
- other-requirements.txt
- tox.ini
- 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: tox
description: |
Generates the index page for https://docs.openstack.org/infra/.
vars:
tox_envlist: infra-docs
files:
- bindep.txt
- docs-site/.*
- other-requirements.txt
- tox.ini
- job:
name: project-config-build-openafs-centos
description: |
There are no official builds for AFS on Centos 7, hence
we build our own and publish them to tarballs.openstack.org
for our centos hosts that need access to the mirror to
consume.
parent: publish-openstack-artifacts
run: playbooks/package-afs-centos/run.yaml
post-run: playbooks/package-afs-centos/post.yaml
nodeset: centos-7
- job:
name: legacy-kolla-kubernetes-base
description: |
This job runs provides the base required projects for
legacy-kolla-kubernetes jobs.
parent: legacy-base
required-projects:
- openstack/requirements
- job:
name: openstack-zuul-jobs-linters
parent: tox
description: |
This job runs against project-config, openstack-zuul-jobs and zuul-jobs
so we can properly lint our ansible playbooks / roles
required-projects:
- openstack-infra/openstack-zuul-jobs
- openstack-infra/project-config
- openstack-infra/zuul-jobs
vars:
tox_envlist: linters
tox_environment:
ANSIBLE_ROLES_PATH: ~/src/git.openstack.org/openstack-infra/zuul-jobs/roles:~/src/git.openstack.org/openstack-infra/openstack-zuul-jobs/roles:~/src/git.openstack.org/openstack-infra/project-config/roles