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

761 lines
19 KiB
YAML

# Shared project-templates specific to the OpenStack Project
- project-template:
name: system-required
description: |
Jobs that *every* project in OpenStack CI should have by default.
merge-check:
jobs:
- noop
- project-template:
name: build-openstack-sphinx-docs
description: |
Runs normal OpenStack PTI doc build without publication jobs.
check:
jobs:
- build-openstack-sphinx-docs
gate:
jobs:
- build-openstack-sphinx-docs
- project-template:
name: publish-openstack-sphinx-docs
description: |
Runs normal OpenStack PTI doc build and publication jobs.
check:
jobs:
- build-openstack-sphinx-docs
gate:
jobs:
- build-openstack-sphinx-docs
post:
jobs:
- publish-openstack-sphinx-docs
- project-template:
name: publish-openstack-sphinx-docs-horizon
description: |
Runs normal OpenStack PTI doc build and publication jobs with horizon
added to required-projects for the various dashboard projects that
need that.
check:
jobs:
- build-openstack-sphinx-docs:
required-projects:
- openstack/horizon
gate:
jobs:
- build-openstack-sphinx-docs:
required-projects:
- openstack/horizon
post:
jobs:
- publish-openstack-sphinx-docs
# Final job, we cannot modify it.
# required-projects:
# - openstack/horizon
- project-template:
name: publish-openstack-sphinx-docs-neutron
description: |
Runs normal OpenStack PTI doc build and publication jobs with neutron
added to required-projects for the various networking- projects that
need that.
check:
jobs:
- build-openstack-sphinx-docs:
required-projects:
- openstack/neutron
gate:
jobs:
- build-openstack-sphinx-docs:
required-projects:
- openstack/neutron
post:
jobs:
- publish-openstack-sphinx-docs
# Final job, we cannot modify it.
# required-projects:
# - openstack/neutron
- project-template:
name: publish-openstack-sphinx-docs-infra
description: |
Runs normal OpenStack PTI build jobs and publishes to the Infra
docs location.
check:
jobs:
- build-openstack-sphinx-docs
gate:
jobs:
- build-openstack-sphinx-docs
post:
jobs:
- publish-openstack-sphinx-docs-infra
- project-template:
name: release-openstack-sphinx-docs-infra
description: |
Runs normal OpenStack PTI build jobs and publishes to the Infra
docs location only on tagged releases.
check:
jobs:
- build-openstack-sphinx-docs
gate:
jobs:
- build-openstack-sphinx-docs
release:
jobs:
- publish-openstack-sphinx-docs-infra
- project-template:
name: puppet-release-jobs
check:
jobs:
- build-openstack-puppet-tarball
gate:
jobs:
- build-openstack-puppet-tarball
pre-release:
jobs:
- release-openstack-puppet
- announce-release:
dependencies:
- release-openstack-puppet
release:
jobs:
- release-openstack-puppet
- announce-release:
dependencies:
- release-openstack-puppet
post:
jobs:
- publish-openstack-puppet-branch-tarball
- project-template:
name: publish-to-pypi
description: |
Publish a Python package to PyPI, then send release announcement
emails and propose updates to upper-constraints as needed.
pre-release:
jobs:
- release-openstack-python
- announce-release:
dependencies:
- release-openstack-python
- propose-update-constraints:
dependencies:
- release-openstack-python
release:
jobs:
- release-openstack-python
- announce-release:
dependencies:
- release-openstack-python
- propose-update-constraints:
dependencies:
- release-openstack-python
- project-template:
name: publish-to-pypi-neutron
description: |
Publish a Python package to PyPI with neutron added to required-projects
for the various networking projects that need that, then send release
announcement emails and propose updates to upper-constraints as needed.
pre-release:
jobs:
- release-openstack-python:
required-projects:
- openstack/neutron
- announce-release:
dependencies:
- release-openstack-python
- propose-update-constraints:
dependencies:
- release-openstack-python
release:
jobs:
- release-openstack-python:
required-projects:
- openstack/neutron
- announce-release:
dependencies:
- release-openstack-python
- propose-update-constraints:
dependencies:
- release-openstack-python
- project-template:
name: publish-to-pypi-horizon
description: |
Publish a Python package to PyPI with horizon added to required-projects
for the various dashboard projects that need that, then send release
announcement emails and propose updates to upper-constraints as needed.
pre-release:
jobs:
- release-openstack-python:
required-projects:
- openstack/horizon
- announce-release:
dependencies:
- release-openstack-python
- propose-update-constraints:
dependencies:
- release-openstack-python
release:
jobs:
- release-openstack-python:
required-projects:
- openstack/horizon
- announce-release:
dependencies:
- release-openstack-python
- propose-update-constraints:
dependencies:
- release-openstack-python
- project-template:
name: publish-xstatic-to-pypi
description: |
Publish an XStatic Python package to PyPI, then send release announcement
emails and propose updates to upper-constraints as needed.
pre-release:
jobs:
- xstatic-check-version
- release-openstack-python:
dependencies:
- xstatic-check-version
- announce-release:
dependencies:
- release-openstack-python
- propose-update-constraints:
dependencies:
- release-openstack-python
release:
jobs:
- xstatic-check-version
- release-openstack-python:
dependencies:
- xstatic-check-version
- announce-release:
dependencies:
- release-openstack-python
- propose-update-constraints:
dependencies:
- release-openstack-python
- project-template:
name: publish-to-pypi-quietly
description: |
Publish a Python package to PyPI but do not send announce emails or
propose upper-constraints updates.
pre-release:
jobs:
- release-openstack-python
release:
jobs:
- release-openstack-python
- project-template:
name: release-openstack-server
description: |
Release OpenStack server projects.
pre-release:
jobs:
- release-openstack-python-without-pypi
- announce-release:
dependencies:
- release-openstack-python-without-pypi
release:
jobs:
- release-openstack-python-without-pypi
- announce-release:
dependencies:
- release-openstack-python-without-pypi
- project-template:
name: release-notes-jobs
check:
jobs:
- build-openstack-releasenotes
gate:
jobs:
- build-openstack-releasenotes
post:
jobs:
- publish-openstack-releasenotes
tag:
jobs:
- publish-openstack-releasenotes
- project-template:
name: openstack-python-jobs
check:
jobs:
- openstack-tox-pep8
- openstack-tox-py27
gate:
jobs:
- openstack-tox-pep8
- openstack-tox-py27
post:
jobs:
- publish-openstack-python-branch-tarball
- project-template:
name: openstack-python-jobs-horizon
description: |
The standard openstack-python-jobs but with horizon added as a
required-projects. The dashboard projects currently need this
due to how the tox_install.sh zuul-cloner's horizon for them.
check:
jobs:
- openstack-tox-pep8:
required-projects:
- openstack/horizon
- openstack-tox-py27:
required-projects:
- openstack/horizon
gate:
jobs:
- openstack-tox-pep8:
required-projects:
- openstack/horizon
- openstack-tox-py27:
required-projects:
- openstack/horizon
post:
jobs:
- publish-openstack-python-branch-tarball:
required-projects:
- openstack/horizon
- project-template:
name: openstack-python-jobs-neutron
description: |
The standard openstack-python-jobs but with neutron added as a
required-projects. The neutron stadium projects currently need this
due to how the tox_install.sh zuul-cloner's neutron for them.
check:
jobs:
- openstack-tox-pep8:
required-projects:
- openstack/neutron
- openstack-tox-py27:
required-projects:
- openstack/neutron
gate:
jobs:
- openstack-tox-pep8:
required-projects:
- openstack/neutron
- openstack-tox-py27:
required-projects:
- openstack/neutron
post:
jobs:
- publish-openstack-python-branch-tarball:
required-projects:
- openstack/neutron
- project-template:
name: openstack-python35-jobs
check:
jobs:
- openstack-tox-py35
gate:
jobs:
- openstack-tox-py35
- project-template:
name: openstack-python35-jobs-horizon
description: |
The standard openstack-python35-jobs but with horizon added as a
required-projects. The dashboard projects currently need this
due to how the tox_install.sh zuul-cloner's horizon for them.
check:
jobs:
- openstack-tox-py35:
required-projects:
- openstack/horizon
gate:
jobs:
- openstack-tox-py35:
required-projects:
- openstack/horizon
- project-template:
name: openstack-python35-jobs-neutron
description: |
The standard openstack-python35-jobs but with neutron added as a
required-projects. The neutron stadium projects currently need this
due to how the tox_install.sh zuul-cloner's neutron for them.
check:
jobs:
- openstack-tox-py35:
required-projects:
- openstack/neutron
gate:
jobs:
- openstack-tox-py35:
required-projects:
- openstack/neutron
- project-template:
name: openstack-python35-jobs-nonvoting
check:
jobs:
- openstack-tox-py35:
voting: false
- project-template:
name: openstack-python-jobs-no-constraints
description: |
Runs the OpenStack PTI jobs for python, but uses the versions of them
that do not use constraints.
check:
jobs:
- tox-pep8
- tox-py27
gate:
jobs:
- tox-pep8
- tox-py27
post:
jobs:
- publish-openstack-python-branch-tarball
- project-template:
name: openstack-python35-jobs-no-constraints
description: |
Runs the OpenStack PTI jobs for python3.5, but uses the versions of them
that do not use constraints.
check:
jobs:
- tox-py35
gate:
jobs:
- tox-py35
post:
jobs:
- publish-openstack-python-branch-tarball
- project-template:
name: openstack-pypy-jobs
check:
jobs:
- openstack-tox-pypy
gate:
jobs:
- openstack-tox-pypy
- project-template:
name: openstack-pypy-jobs-nonvoting
check:
jobs:
- openstack-tox-pypy:
voting: false
- project-template:
name: openstack-python-jobs-trusty
check:
jobs:
- openstack-tox-pep8:
nodeset: ubuntu-trusty
- openstack-tox-py27:
nodeset: ubuntu-trusty
gate:
jobs:
- openstack-tox-pep8:
nodeset: ubuntu-trusty
- openstack-tox-py27:
nodeset: ubuntu-trusty
- project-template:
name: docs-on-readthedocs
description: |
Runs normal OpenStack PTI build jobs but publishes to readthedocs
instead of docs.openstack.org. This is intended for projects that are
aiming to follow the PTI but are not official.
check:
jobs:
- build-openstack-sphinx-docs
gate:
jobs:
- build-openstack-sphinx-docs
post:
jobs:
- trigger-readthedocs
pre-release:
jobs:
- trigger-readthedocs
release:
jobs:
- trigger-readthedocs
- project-template:
name: nodejs4-publish-to-npm
release:
jobs:
- publish-openstack-javascript-tarball:
vars:
node_version: 4
- release-openstack-javascript:
vars:
node_version: 4
- announce-release:
dependencies:
- release-openstack-javascript
- publish-openstack-javascript-tarball
- project-template:
name: nodejs6-publish-to-npm
release:
jobs:
- publish-openstack-javascript-tarball:
vars:
node_version: 6
- release-openstack-javascript:
vars:
node_version: 6
- announce-release:
dependencies:
- release-openstack-javascript
- publish-openstack-javascript-tarball
- project-template:
name: translation-jobs
description: |
Sync translations to translation server and back again.
This is intented for official OpenStack projects that have
translations set up.
post:
jobs:
- upstream-translation-update
periodic:
jobs:
- propose-translation-update:
branches: master
- project-template:
name: translation-jobs-ocata
description: |
Sync translations from translation server for ocata branch.
periodic:
jobs:
- propose-translation-update:
branches: stable/ocata
- project-template:
name: translation-jobs-pike
description: |
Sync translations from translation server for pike branch.
periodic:
jobs:
- propose-translation-update:
branches: stable/pike
- project-template:
name: openstack-specs-jobs
description: |
Runs jobs to build and publish documents for a specs repository.
check:
jobs:
- build-openstack-sphinx-docs
gate:
jobs:
- build-openstack-sphinx-docs
post:
jobs:
- publish-openstack-specs
- project-template:
name: api-guide-jobs
check:
jobs:
- build-openstack-api-guide
gate:
jobs:
- build-openstack-api-guide
post:
jobs:
- publish-api-guide
- project-template:
name: api-ref-jobs
check:
jobs:
- build-openstack-api-ref
gate:
jobs:
- build-openstack-api-ref
post:
jobs:
- publish-api-ref
- project-template:
name: deploy-guide-jobs
check:
jobs:
- build-openstack-deploy-guide
gate:
jobs:
- build-openstack-deploy-guide
post:
jobs:
- publish-deploy-guide
- project-template:
name: install-guide-jobs
check:
jobs:
- build-openstack-install-guide
gate:
jobs:
- build-openstack-install-guide
post:
jobs:
- publish-install-guide
- project-template:
name: periodic-stable-jobs
description: |
Runs periodic jobs on stable branches.
periodic-stable:
jobs:
- build-openstack-sphinx-docs:
branches:
- stable/ocata
- stable/pike
- openstack-tox-py27:
branches:
- stable/ocata
- stable/pike
- project-template:
name: periodic-stable-jobs-neutron
periodic-stable:
jobs:
- build-openstack-sphinx-docs:
branches:
- stable/ocata
- stable/pike
required-projects:
- openstack/neutron
- openstack-tox-py27:
branches:
- stable/ocata
- stable/pike
required-projects:
- openstack/neutron
- project-template:
name: python-charm-layer-jobs
check:
jobs:
- openstack-tox-pep8
- openstack-tox-build
gate:
jobs:
- openstack-tox-pep8
- openstack-tox-build
- project-template:
name: python35-charm-jobs
description: |
Run tox-pep8 and tox-py35 check and gate jobs, plus publish.
check:
jobs:
- openstack-tox-pep8
- openstack-tox-py35
gate:
jobs:
- openstack-tox-pep8
- openstack-tox-py35
post:
jobs:
- publish-openstack-python-branch-tarball
- project-template:
name: nodejs4-jobs
description: |
Run lint and test jobs using Node 4.
check:
jobs:
- nodejs-npm-run-lint:
vars:
node_version: 4
- nodejs-npm-run-test:
vars:
node_version: 4
gate:
jobs:
- nodejs-npm-run-lint:
vars:
node_version: 4
- nodejs-npm-run-test:
vars:
node_version: 4
- project-template:
name: nodejs6-jobs
description: |
Run lint and test jobs using Node 6.
check:
jobs:
- nodejs-npm-run-lint:
vars:
node_version: 6
- nodejs-npm-run-test:
vars:
node_version: 6
- build-javascript-tarball:
files:
- npm-shrinkwrap.json
- package.json
gate:
jobs:
- nodejs-npm-run-lint:
vars:
node_version: 6
- nodejs-npm-run-test:
vars:
node_version: 6
- build-javascript-tarball:
files:
- npm-shrinkwrap.json
- package.json
- project-template:
name: nodejs4-docs
description: |
Run docs jobs using Node 4.
check:
jobs:
- nodejs-npm-run-docs:
vars:
node_version: 4
gate:
jobs:
- nodejs-npm-run-docs:
vars:
node_version: 4
- project-template:
name: nodejs6-docs
description: |
Run docs jobs using Node 6.
check:
jobs:
- nodejs-npm-run-docs:
vars:
node_version: 6
gate:
jobs:
- nodejs-npm-run-docs:
vars:
node_version: 6