project-config/zuul.d/jobs.yaml

1339 lines
40 KiB
YAML

# Shared zuul config specific to the OpenStack Project
# Contains definitions of trusted jobs
# Overrides jobs from:
# https://opendev.org/zuul/zuul-jobs
- job:
name: base-minimal
parent: null
abstract: true
description: |
A subset of what the 'base' job provides: the absolute minimum considered
required to run for any one job.
It doesn't set up cached git repositories, will not set up mirrors,
doesn't validate the node, etc.
It is meant to be used, amongst other things, to test roles and
playbooks that would otherwise be included by default as part of the
'base' job.
These tasks, if required, can be included by the dependant jobs
themselves on a need basis.
pre-run: playbooks/base-minimal/pre.yaml
post-run:
- playbooks/base-minimal/post.yaml
- playbooks/base-minimal/post-logs.yaml
roles:
- zuul: zuul/zuul-jobs
vars:
ara_report_type: database
ara_report_path: ara-report
timeout: 1800
post-timeout: 1800
nodeset:
nodes:
- name: ubuntu-xenial
label: ubuntu-xenial
secrets:
- site_logs_project_config
# TODO(pabelanger): Look to see if we can delete once topic:zuul-minimal-jobs is
# finished.
- job:
name: base-ozj
parent: null
abstract: true
description: |
A subset of what the 'base' job provides: the absolute minimum considered
required to run for any one job.
It doesn't set up cached git repositories, will not set up mirrors,
doesn't validate the node, etc.
It is meant to be used, amongst other things, to test roles and
playbooks that would otherwise be included by default as part of the
'base' job.
These tasks, if required, can be included by the dependant jobs
themselves on a need basis.
pre-run: playbooks/base-ozj/pre.yaml
post-run:
- playbooks/base-ozj/post.yaml
- playbooks/base-ozj/post-logs.yaml
roles:
- zuul: zuul/zuul-jobs
vars:
ara_report_type: database
ara_report_path: ara-report
timeout: 1800
post-timeout: 1800
nodeset:
nodes:
- name: ubuntu-xenial
label: ubuntu-xenial
secrets:
- site_logs_project_config
- job:
name: publish-openstack-artifacts
description: |
Publish job to upload artifacts to tarballs.openstack.org
post-review: true
post-run: playbooks/publish/openstack-artifacts.yaml
secrets:
- secret: site_tarballs
name: fileserver
- job:
name: release-openstack-puppet
parent: publish-openstack-artifacts
description: |
Sign and release puppet tarballs to tarballs.o.o.
pre-run: playbooks/puppet-tarball/pre.yaml
run: playbooks/puppet-tarball/run.yaml
post-run:
- playbooks/puppet-tarball/post.yaml
- playbooks/publish/puppetforge.yaml
secrets:
- gpg_key
- name: puppetforge
secret: openstack_puppetforge_credentials
- job:
name: release-openstack-python
parent: publish-openstack-artifacts
description: |
Release python tarballs / wheels to pypi.
pre-run: playbooks/pti-python-tarball/pre.yaml
run: playbooks/pti-python-tarball/run.yaml
post-run:
- playbooks/pti-python-tarball/post.yaml
- playbooks/publish/pypi.yaml
secrets:
- secret: pypi_secret
name: pypi_info
- gpg_key
vars:
release_python: python3
twine_python: python3
bdist_wheel_xargs: "--universal"
- job:
name: test-release-openstack
parent: base
description: |
Test building python tarballs / wheels and the packaging metadata.
pre-run: playbooks/pti-python-tarball/pre.yaml
run: playbooks/pti-python-tarball/check.yaml
vars:
release_python: python3
twine_python: python3
bdist_wheel_xargs: "--universal"
files:
- setup.cfg
- setup.py
- README.rst
- job:
name: publish-zuul-python-branch-tarball
parent: publish-openstack-artifacts
description: |
Publish the results of the tox-tarball job to tarballs.openstack.org.
pre-run: playbooks/zuul-tarball/pre.yaml
run: playbooks/zuul-tarball/run.yaml
post-run: playbooks/python-branch-tarball/post.yaml
vars:
node_version: 10
- job:
name: release-zuul-python
parent: publish-openstack-artifacts
description: |
Release python tarballs / wheels to pypi for zuul projects.
pre-run: playbooks/zuul-tarball/pre.yaml
run: playbooks/zuul-tarball/run.yaml
post-run:
- playbooks/zuul-tarball/post.yaml
- playbooks/publish/pypi.yaml
secrets:
- secret: pypi_secret
name: pypi_info
- gpg_key
vars:
node_version: 10
- job:
name: publish-openstack-sphinx-docs-base
nodeset: ubuntu-xenial
description: |
Base job for publishing sphinx documentation to
/afs/.openstack.org/docs/.
This job is obsolete, use ``publish-openstack-tox-docs-base`` instead.
abstract: true
protected: true
pre-run:
- playbooks/sphinx/pre.yaml
run: playbooks/sphinx/run.yaml
post-run:
- playbooks/publish/openstack-afs.yaml
required-projects:
- name: openstack/requirements
roles:
- zuul: zuul/zuul-jobs
- zuul: openstack/openstack-zuul-jobs
secrets:
- secret: afsdocs_secret
name: afs
vars:
constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt'
- job:
name: publish-openstack-sphinx-docs
parent: publish-openstack-sphinx-docs-base
description: |
Publish the results of the build-openstack-sphinx-docs job to
/afs/.openstack.org/docs/{{ zuul.project.short_name }}.
Publishes depending on branch to latest/ (for master), or the
basename of the branch like pike (for stable/pike).
This is the publication job for ``build-openstack-sphinx-docs``.
This job is obsolete and should not be used anymore since rocky,
use ``publish-openstack-docs`` instead.
final: true
pre-run:
# TODO(mordred) REMOVE THIS HACK
- playbooks/sphinx/neutron-horizon-hack.yaml
post-run:
- playbooks/sphinx/post.yaml
required-projects:
# TODO(mordred) REMOVE THIS HACK ONCE neutron-horizon-hack is removed
- name: openstack/neutron
- name: openstack/horizon
- job:
name: publish-openstack-tox-docs-base
description: |
Base job for publishing docs tox job.
Publish the results of the docs tox job to
/afs/.openstack.org/docs/{{ zuul.project.short_name }}.
branches: ^(?!stable/(ocata|pike|queens|rocky)).*$
abstract: true
protected: true
pre-run: playbooks/project-config/pre-tox.yaml
run: playbooks/project-config/run-tox.yaml
post-run:
- playbooks/project-config/post-tox.yaml
- playbooks/publish/openstack-afs.yaml
required-projects:
- name: openstack/requirements
roles:
- zuul: zuul/zuul-jobs
- zuul: openstack/openstack-zuul-jobs
vars:
tox_envlist: docs
bindep_profile: compile doc
tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt'
secrets:
- secret: afsdocs_secret
name: afs
- job:
name: publish-openstack-tox-docs-base
nodeset: ubuntu-xenial
description: |
Base job for publishing docs tox job.
Publish the results of the docs tox job to
/afs/.openstack.org/docs/{{ zuul.project.short_name }}.
This job runs on Xenial for stable/ocata, pike, queens and rocky. This
job is prepared to make sure all stable branches before stable/stein will
keep running on xenial.
branches:
- stable/ocata
- stable/pike
- stable/queens
- stable/rocky
abstract: true
protected: true
pre-run: playbooks/project-config/pre-tox.yaml
run: playbooks/project-config/run-tox.yaml
post-run:
- playbooks/project-config/post-tox.yaml
- playbooks/publish/openstack-afs.yaml
required-projects:
- name: openstack/requirements
roles:
- zuul: zuul/zuul-jobs
- zuul: openstack/openstack-zuul-jobs
vars:
tox_envlist: docs
bindep_profile: compile doc
tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt'
secrets:
- secret: afsdocs_secret
name: afs
- job:
name: publish-openstack-tox-docs
parent: publish-openstack-tox-docs-base
description: |
Publication job for projects that run tox using
the docs environment following OpenStack PTI.
Publish the results of the docs tox job to
/afs/.openstack.org/docs/{{ zuul.project.short_name }}.
Publishes depending on branch to latest/ (for master), or the
basename of the branch like pike (for stable/pike).
This is the publication job for ``openstack-tox-docs``.
This is deprecated, use ``promote-openstack-tox-docs`` instead.
final: true
post-run:
- playbooks/sphinx/post.yaml
required-projects:
- name: openstack/requirements
vars:
tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt'
- job:
name: promote-openstack-tox-docs
parent: opendev-promote-docs-base
description: |
Promote content from openstack-tox-docs job for projects that
run tox using the docs environment following OpenStack PTI.
Publish the results of the docs tox job to
/afs/.openstack.org/docs/{{ zuul.project.short_name }}.
Publishes depending on branch to latest/ (for master), or the
basename of the branch like pike (for stable/pike).
This is the promote job for ``openstack-tox-docs``.
final: true
vars:
download_artifact_job: openstack-tox-docs
secrets:
- secret: afsdocs_secret-tox-docs
name: afs
pass-to-parent: true
- job:
name: promote-openstack-tox-docs-direct
parent: opendev-promote-docs-base
description: |
Promote content from openstack-tox-docs job for projects that
run tox using the docs environment following OpenStack PTI.
Publish the results of the docs tox job to
/afs/.openstack.org/docs/{{ zuul.project.short_name }}.
Publishing is done from master branch directly without using /latest.
This is a promote job for ``openstack-tox-docs``.
final: true
branches: master
vars:
download_artifact_job: openstack-tox-docs
secrets:
- secret: afsdocs_secret-tox-docs-direct
name: afs
pass-to-parent: true
- job:
name: promote-tox-docs-special-base
parent: opendev-promote-docs-base
description: |
Promote content from openstack-tox-docs job for some projects
that need a special location.
Publish the results of the tox-docs job to
/afs/.openstack.org/docs/{{ special_publish_directory }}.
This is a promote job for ``openstack-tox-docs``.
A job needs to set the variable `special_publish_directory`.
abstract: true
protected: true
vars:
download_artifact_job: openstack-tox-docs
secrets:
- secret: afsdocs_secret-tox-docs-special
name: afs
pass-to-parent: true
- job:
name: promote-openstack-contributor-guide
parent: promote-tox-docs-special-base
description: |
Publish contributor-guide documents to
https://docs.openstack.org/contributors
final: true
allowed-projects:
- openstack/contributor-guide
branches: master
vars:
special_publish_directory: "contributors"
- job:
name: publish-openstack-releasenotes-base
description: |
Abstract base job to publish the results of build-openstack-releasenotes to
/afs/.openstack.org/docs/releasenotes/{{ zuul.project.short_name }}
# This job is protected-abstract because it sets the afs_subpath
# variable; it is not safe to let that be overridden in an
# untrusted job because it would allow writing outside of the
# project's directory on the production doc site.
protected: true
abstract: true
pre-run: playbooks/releasenotes/pre.yaml
run: playbooks/releasenotes/run.yaml
post-run:
- playbooks/publish/releasenotes.yaml
- playbooks/publish/openstack-afs.yaml
override-branch: master
# Building translated releasenotes can take long for large repositories
timeout: 3600
required-projects:
- name: openstack/requirements
roles:
- zuul: openstack/openstack-zuul-jobs
- zuul: zuul/zuul-jobs
vars:
afs_subpath: "/releasenotes/{{ zuul.project.short_name }}"
constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt'
sphinx_build_dir: releasenotes/build
secrets:
- secret: afsdocs_secret
name: afs
- job:
name: promote-openstack-releasenotes
parent: opendev-promote-docs-base
description: |
Promote the results of build-openstack-releasenotes to
/afs/.openstack.org/docs/releasenotes/{{ zuul.project.short_name }}
final: true
vars:
download_artifact_job: build-openstack-releasenotes
secrets:
- secret: afsdocs_secret-releasenotes
name: afs
pass-to-parent: true
# Same file list as for job build-reno-releasenotes that is
# defined in zuul/zuul-jobs repo, file zuul.d/python-jobs.yaml.
# Keep those lists in sync.
files:
- ^releasenotes/.*
- bindep.txt
- doc/requirements.txt
- test-requirements.txt
- tox.ini
- job:
name: publish-openstack-releasenotes
parent: publish-openstack-releasenotes-base
description: |
Publish the results of build-openstack-releasenotes to
/afs/.openstack.org/docs/releasenotes/{{ zuul.project.short_name }}
# This job is final because its parent sets the afs_subpath
# variable; it is not safe to let that be overridden in an
# untrusted job because it would allow writing outside of the
# project's directory on the production doc site.
final: true
- job:
name: publish-openstack-releasenotes-python3
parent: publish-openstack-releasenotes-base
description: |
Publish the results of build-openstack-releasenotes to
/afs/.openstack.org/docs/releasenotes/{{ zuul.project.short_name }}
Uses python3.
# This job is final because its parent sets the afs_subpath
# variable; it is not safe to let that be overridden in an
# untrusted job because it would allow writing outside of the
# project's directory on the production doc site.
final: true
vars:
sphinx_python: python3
- job:
name: promote-openstack-specs-base
parent: opendev-promote-docs-base
abstract: true
protected: true
description: |
Base job to promote content to specs.openstack.org.
Jobs need to set the variable ``static_target`` for site to
publish to.
run: playbooks/static-docs/promote.yaml
vars:
download_artifact_job: build-openstack-specs-site
static_target: ""
roles:
- zuul: zuul/zuul-jobs
- zuul: openstack/openstack-zuul-jobs
secrets:
- name: fileserver
secret: site_specs_promote
- job:
name: promote-openstack-specs-site
parent: promote-openstack-specs-base
final: true
description: |
Publish OpenStack specs site to static.openstack.org specs/
This is a promote job for ``build-openstack-specs-site``.
allowed-projects:
- openstack/project-config
vars:
download_artifact_job: build-openstack-specs-site
static_target: ""
- job:
name: promote-openstack-specs
parent: promote-openstack-specs-base
final: true
description: |
Publish OpenStack specs project to static.openstack.org
specs/{{ zuul.project.name }}.
This is a promote job for ``openstack-tox-docs``.
vars:
download_artifact_job: openstack-tox-docs
static_target: "{{ zuul.project.name }}"
- job:
name: promote-tox-docs-infra
parent: opendev-promote-docs-base
description: |
Promote content from tox-docs job for Infra projects.
Publish the results of the tox-docs job to
/afs/.openstack.org/docs/infra/{{ zuul.project.short_name }}.
This is a promote job for ``tox-docs``.
final: true
vars:
download_artifact_job: opendev-tox-docs
secrets:
- secret: afsdocs_secret-tox-docs-infra
name: afs
pass-to-parent: true
- job:
name: publish-tox-docs-infra-bionic
parent: publish-openstack-tox-docs-base
description: |
Publish the results of the tox docs job to
/afs/.openstack.org/infra/{{ zuul.project.short_name }}
using an ubuntu-bionic nodeset (openstackid will use this
to get around the final: true in publish-tox-docs-infra
until the default nodeset is updated in the base job)
final: true
post-run:
- playbooks/sphinx/post-infra.yaml
vars:
afs_subpath: "/infra/{{ zuul.project.short_name }}"
bindep_profile: compile doc
nodeset: ubuntu-bionic
- job:
name: promote-infra-manual
parent: promote-tox-docs-special-base
description: |
Promote infra-manual documents to
https://docs.openstack.org/infra/manual
allowed-projects:
- openstack/infra-manual
final: true
branches: master
vars:
download_artifact_job: tox-docs
special_publish_directory: "infra/manual"
- job:
name: publish-service-types-authority
description: |
Publish OpenStack Service Types Authority to
https://service-types.openstack.org
final: true
pre-run: playbooks/project-config/pre-tox.yaml
run: playbooks/project-config/run-tox.yaml
post-run: playbooks/publish/service-types.yaml
allowed-projects:
- openstack/service-types-authority
roles:
- zuul: zuul/zuul-jobs
- zuul: openstack/openstack-zuul-jobs
vars:
tox_envlist: publish
secrets:
- site_specs
- job:
name: promote-infra-index
parent: promote-tox-docs-special-base
description: |
Promote infra index.html to
https://docs.openstack.org/infra/
allowed-projects:
- openstack/project-config
final: true
branches: master
vars:
download_artifact_job: project-config-infra-docs-index
special_publish_directory: "infra"
- job:
name: publish-infra-publications-index
description: |
Publish the publication index
final: true
run: playbooks/publications-index/run.yaml
post-run:
- playbooks/publish/publications-index.yaml
- playbooks/publish/openstack-afs.yaml
# Index is always published from master
override-branch: master
allowed-projects:
- opendev/publications
roles:
- zuul: zuul/zuul-jobs
- zuul: openstack/openstack-zuul-jobs
vars:
afs_subpath: "/infra/publications/"
tox_envlist: infra-docs
secrets:
- secret: afsdocs_secret
name: afs
- job:
name: publish-infra-publications
description: |
Publish one publication from opendev/publications
final: true
run: playbooks/publications/run.yaml
post-run:
- playbooks/publish/publications.yaml
- playbooks/publish/openstack-afs.yaml
allowed-projects:
- opendev/publications
roles:
- zuul: zuul/zuul-jobs
- zuul: openstack/openstack-zuul-jobs
vars:
afs_subpath: "/infra/publications/"
tox_envlist: infra-docs
secrets:
- secret: afsdocs_secret
name: afs
- job:
name: publish-openstack-python-branch-tarball
parent: publish-openstack-artifacts
description: |
Publish the results of the tox-tarball job to tarballs.openstack.org.
pre-run: playbooks/pti-python-tarball/pre.yaml
run: playbooks/pti-python-tarball/run.yaml
post-run: playbooks/python-branch-tarball/post.yaml
- job:
name: publish-irc-meetings
description: |
Publish the IRC meeting calendars to eavesdrop.openstack.org.
final: true
pre-run: playbooks/yaml2ical/pre.yaml
run: playbooks/project-config/run-tox.yaml
post-run: playbooks/yaml2ical/post.yaml
allowed-projects:
- opendev/irc-meetings
vars:
tox_envlist: ical
secrets:
- name: fileserver
secret: eavesdrop_ssh_key
- job:
name: base-publish-tox-docs-static
abstract: true
protected: true
description: |
Base job for jobs that publish content to static.openstack.org.
Jobs need to set the variable ``static_target`` for site to
publish to.
This job uses ``tox -e docs`` for building documents.
roles:
- zuul: openstack/openstack-zuul-jobs
pre-run: playbooks/project-config/pre-tox.yaml
run: playbooks/project-config/run-tox.yaml
post-run:
- playbooks/sphinx/post-direct.yaml
- playbooks/project-config/post-tox.yaml
- playbooks/publish/static-tox-docs.yaml
vars:
tox_envlist: docs
secrets:
- name: fileserver
secret: static_ssh_key
- job:
name: base-promote-tox-docs-static
parent: opendev-promote-docs-base
abstract: true
protected: true
description: |
Base job for jobs that promote content to static.openstack.org.
Jobs need to set the variable ``static_target`` for site to
publish to.
This is a promote job for ``openstack-tox-docs``.
run: playbooks/static-docs/promote.yaml
vars:
download_artifact_job: openstack-tox-docs
roles:
- zuul: zuul/zuul-jobs
- zuul: openstack/openstack-zuul-jobs
secrets:
- name: fileserver
secret: static_ssh_key
pass-to-parent: true
- job:
name: publish-tox-docs-static
parent: base-publish-tox-docs-static
description: |
Publish content to static.openstack.org to
/srv/static/{{ zuul.project.short_name }}
final: true
allowed-projects:
- openstack/releases
vars:
static_target: "{{ zuul.project.short_name }}"
- job:
name: promote-tox-docs-static
parent: base-promote-tox-docs-static
description: |
Promote content to static.openstack.org to
/srv/static/{{ zuul.project.short_name }}
allowed-projects:
- openstack/election
- openstack/transparency-policy
final: true
vars:
static_target: "{{ zuul.project.short_name }}"
- job:
name: promote-governance-sigs
parent: base-promote-tox-docs-static
description: |
Promote content to static.openstack.org to /srv/static/sigs
final: true
allowed-projects:
- openstack/governance-sigs
vars:
static_target: sigs
- job:
name: promote-governance-tc
parent: base-promote-tox-docs-static
description: |
Promote content to static.openstack.org to /srv/static/tc
final: true
allowed-projects:
- openstack/governance
vars:
static_target: tc
- job:
name: promote-governance-uc
parent: base-promote-tox-docs-static
description: |
Promote content to static.openstack.org to /srv/static/uc
final: true
allowed-projects:
- openstack/governance-uc
vars:
static_target: uc
- job:
name: promote-governance-website
parent: base-promote-tox-docs-static
description: |
Promote content to static.openstack.org to /srv/static/governance
final: true
allowed-projects:
- openstack/governance-website
vars:
static_target: governance
- job:
name: promote-security
parent: base-promote-tox-docs-static
description: |
Promote content to static.openstack.org to /srv/static/security
final: true
allowed-projects:
- openstack/ossa
vars:
static_target: security
- job:
name: promote-openstack-manuals
description: |
Promote content fron build-openstack-manuals job and
publishes it on docs.openstack.org website.
parent: opendev-promote-docs-base
final: true
timeout: 2700
allowed-projects:
- openstack/openstack-manuals
- openstack/security-doc
- openstack/training-guides
vars:
write_root_marker: false
download_artifact_job: build-tox-manuals-publishdocs
secrets:
- secret: afsdocs_secret-openstack-manuals
name: afs
pass-to-parent: true
- job:
name: promote-openstack-manuals-lang
description: |
Promote content fron build-openstack-manuals-lang job and
publishes it on docs.openstack.org website.
parent: opendev-promote-docs-base
final: true
allowed-projects:
- openstack/openstack-manuals
- openstack/security-doc
- openstack/training-guides
vars:
write_root_marker: false
download_artifact_job: build-tox-manuals-publishlang
secrets:
- secret: afsdocs_secret-openstack-manuals
name: afs
pass-to-parent: true
- job:
name: promote-openstack-manuals-developer
description: |
Promote content fron build-openstack-manuals job and
publishes it on developer.openstack.org website.
parent: opendev-promote-docs-base
final: true
allowed-projects:
- openstack/api-site
vars:
write_root_marker: false
download_artifact_job: build-tox-manuals-publishdocs
secrets:
- secret: afsdeveloper_secret-openstack-manuals
name: afs
pass-to-parent: true
- job:
name: promote-api-guide
parent: opendev-promote-docs-base
description: |
Publish api-guide document to
https://docs.openstack.org/api-guide.
This job is run in a promote pipeline to publish documents built
in the gate pipeline.
# We only publish the master branch, so no need to run
# for changes on other branches.
branches: master
final: true
run: playbooks/api-jobs/promote.yaml
vars:
api_path: api-guide
download_artifact_job: build-openstack-api-guide
roles:
- zuul: zuul/zuul-jobs
- zuul: openstack/openstack-zuul-jobs
secrets:
- secret: afsdocs_secret
name: afs
- job:
name: promote-api-ref
parent: opendev-promote-docs-base
description: |
Publish api-ref document to
https://docs.openstack.org/api-ref.
This job is run in a promote pipeline to publish documents built
in the gate pipeline.
# We only publish the master branch, so no need to run
# for changes on other branches.
branches: master
final: true
run: playbooks/api-jobs/promote.yaml
vars:
api_path: api-ref
download_artifact_job: build-openstack-api-ref
roles:
- zuul: zuul/zuul-jobs
- zuul: openstack/openstack-zuul-jobs
secrets:
- secret: afsdocs_secret
name: afs
- job:
name: publish-install-guide
description: |
Publish install-guide document to
https://docs.openstack.org/project-install-guide/
pre-run: playbooks/sphinx/pre.yaml
run: playbooks/sphinx/run.yaml
post-run: playbooks/publish/install-guide.yaml
roles:
- zuul: zuul/zuul-jobs
- zuul: openstack/openstack-zuul-jobs
# This job runs only pre-pike, with pike the documents have been
# integrated into normal builds.
branches:
- stable/ocata
vars:
sphinx_build_dir: install-guide/build
sphinx_source_dir: install-guide/source
secrets:
- secret: afsdocs_secret
name: afs
- job:
name: promote-deploy-guide
parent: opendev-promote-docs-base
description: |
Promote content from build-openstack-deploy-guide.
Publish the results of the build-openstack-deploy-guide job to
/afs/.openstack.org/docs/deploy-guide/{{ zuul.project.short_name }}.
Publishes depending on branch to latest/ (for master), or the
basename of the branch like pike (for stable/pike).
final: true
vars:
download_artifact_job: build-openstack-deploy-guide
secrets:
- secret: afsdocs_secret-deploy-guide
name: afs
pass-to-parent: true
- job:
name: publish-training-labs-scripts
parent: publish-openstack-artifacts
description: |
Publish training-labs tarball to tarballs.openstack.org.
pre-run: playbooks/training-labs/pre.yaml
run: playbooks/training-labs/run.yaml
post-run: playbooks/training-labs/post.yaml
secrets:
- secret: site_tarballs
name: fileserver
allowed-projects:
- openstack/training-labs
- job:
name: publish-openstack-javascript-content
parent: publish-openstack-artifacts
description: |
Publish javascript content tarballs to tarballs.openstack.org.
Content tarballs contain the built javascript/css/html artifacts. They
are different from source tarballs, which are handled by the
publish-openstack-javascript-tarball job.
pre-run: playbooks/javascript/pre.yaml
run: playbooks/javascript/content.yaml
post-run: playbooks/javascript/publish.yaml
- job:
name: release-openstack-javascript
parent: publish-openstack-artifacts
description: |
Release javascript tarballs to npm.
pre-run: playbooks/javascript/pre.yaml
run: playbooks/javascript/tarball.yaml
post-run: playbooks/javascript/release.yaml
secrets:
- npm_credentials
- gpg_key
- job:
name: propose-updates
pre-run: playbooks/proposal/pre.yaml
description: |
Sync content to other projects as a proposed change.
run: playbooks/proposal/propose-updates.yaml
protected: true
secrets:
- secret: proposal_ssh_key
name: ssh_key
- job:
name: propose-update-constraints
parent: propose-updates
description: |
Update constraint files for requirements project with a
proposed change.
run: playbooks/proposal/propose-update-constraints.yaml
protected: true
dependencies:
- release-openstack-python
- job:
name: propose-project-config-update
parent: propose-updates
description: |
Update project-config files with a proposed change.
run: playbooks/proposal/propose-project-config-update.yaml
protected: true
- job:
name: build-wheel-mirror-base
abstract: true
description: |
Base job for building wheels published in OpenStack CI mirrors.
pre-run:
- playbooks/wheel/pre.yaml
run: playbooks/wheel/build.yaml
post-run: playbooks/wheel/post-base.yaml
# 2.5 hours
timeout: 9000
# The job iterates over all branches, so we only need to run it on
# master.
branches: master
roles:
- zuul: opendev/system-config
allowed-projects:
- openstack/requirements
- job:
name: build-wheel-mirror-centos-7
parent: build-wheel-mirror-base
description: |
Build CentOS 7 wheels for OpenStack CI mirrors.
nodeset:
nodes:
- name: wheel-mirror-centos-7-python2
label: centos-7
host-vars:
wheel-mirror-centos-7-python2:
wheel_python: python2
- job:
name: publish-wheel-mirror-centos-7
description: |
Publish CentOS 7 wheels for OpenStack CI mirrors.
parent: build-wheel-mirror-centos-7
pre-run: playbooks/openafs-client/setup.yaml
post-run: playbooks/publish/wheel-mirror.yaml
final: true
secrets:
- name: afs
secret: wheel_keytab
- job:
name: build-wheel-mirror-ubuntu-bionic
parent: build-wheel-mirror-base
description: |
Build Ubuntu Bionic wheels for OpenStack CI mirrors.
nodeset:
nodes:
- name: wheel-mirror-ubuntu-bionic-python2
label: ubuntu-bionic
- name: wheel-mirror-ubuntu-bionic-python3
label: ubuntu-bionic
host-vars:
wheel-mirror-ubuntu-bionic-python2:
wheel_python: python2
wheel-mirror-ubuntu-bionic-python3:
wheel_python: python3
- job:
name: publish-wheel-mirror-ubuntu-bionic
parent: build-wheel-mirror-ubuntu-bionic
description: |
Publish Ubuntu Bionic wheels for OpenStack CI mirrors.
pre-run: playbooks/openafs-client/setup.yaml
post-run: playbooks/publish/wheel-mirror.yaml
final: true
secrets:
- name: afs
secret: wheel_keytab
- job:
name: build-wheel-mirror-ubuntu-trusty
parent: build-wheel-mirror-base
description: |
Build Ubuntu Trusty wheels for OpenStack CI mirrors.
nodeset:
nodes:
- name: wheel-mirror-ubuntu-trusty-python2
label: ubuntu-trusty
- name: wheel-mirror-ubuntu-trusty-python3
label: ubuntu-trusty
host-vars:
wheel-mirror-ubuntu-trusty-python2:
wheel_python: python2
wheel-mirror-ubuntu-trusty-python3:
wheel_python: python3
- job:
name: publish-wheel-mirror-ubuntu-trusty
parent: build-wheel-mirror-ubuntu-trusty
description: |
Publish Ubuntu Trusty wheels for OpenStack CI mirrors.
pre-run: playbooks/openafs-client/setup.yaml
post-run: playbooks/publish/wheel-mirror.yaml
final: true
secrets:
- name: afs
secret: wheel_keytab
- job:
name: build-wheel-mirror-ubuntu-xenial
parent: build-wheel-mirror-base
description: |
Build Ubuntu Xenial wheels for OpenStack CI mirrors.
nodeset:
nodes:
- name: wheel-mirror-ubuntu-xenial-python2
label: ubuntu-xenial
- name: wheel-mirror-ubuntu-xenial-python3
label: ubuntu-xenial
host-vars:
wheel-mirror-ubuntu-xenial-python2:
wheel_python: python2
wheel-mirror-ubuntu-xenial-python3:
wheel_python: python3
- job:
name: publish-wheel-mirror-ubuntu-xenial
parent: build-wheel-mirror-ubuntu-xenial
description: |
Publish Ubuntu Xenial wheels for OpenStack CI mirrors.
pre-run: playbooks/openafs-client/setup.yaml
post-run: playbooks/publish/wheel-mirror.yaml
final: true
secrets:
- name: afs
secret: wheel_keytab
- job:
name: build-wheel-mirror-ubuntu-xenial-arm64
parent: build-wheel-mirror-base
description: |
Build Ubuntu Xenial ARM64 wheels for OpenStack CI mirrors.
nodeset:
nodes:
- name: wheel-mirror-ubuntu-xenial-arm64-python2
label: ubuntu-xenial-arm64
- name: wheel-mirror-ubuntu-xenial-arm64-python3
label: ubuntu-xenial-arm64
host-vars:
wheel-mirror-ubuntu-xenial-arm64-python2:
wheel_python: python2
wheel-mirror-ubuntu-xenial-arm64-python3:
wheel_python: python3
- job:
name: publish-wheel-mirror-ubuntu-xenial-arm64
parent: build-wheel-mirror-ubuntu-xenial-arm64
description: |
Publish Ubuntu Xenial ARM64 wheels for OpenStack CI mirrors.
pre-run: playbooks/openafs-client/setup.yaml
post-run: playbooks/publish/wheel-mirror.yaml
final: true
secrets:
- name: afs
secret: wheel_keytab
- job:
name: release-wheel-mirror
description: |
Release published wheels to OpenStack CI mirrors.
run: playbooks/wheel/release.yaml
nodeset:
nodes: []
# Build and publish jobs for the wheel mirror only run against
# master. Restrict the release job to master as well to avoid zuul
# config errors due to stable branches not being able to run their
# job depenendencies.
branches: master
secrets:
- name: afs
secret: afsadmin_keytab
- job:
name: tag-releases
description: |
Tag projects for a release.
pre-run: playbooks/release/pre.yaml
run: playbooks/release/tag.yaml
post-run: playbooks/release/post.yaml
final: true
secrets:
- name: lp_creds
secret: lp_creds
- name: ssh_key
secret: release_ssh_key
- gpg_key
- job:
name: trigger-readthedocs-webhook
description: |
Trigger readthedocs to rebuild documentation
Note this job requires some external setup.
#. add the ``openstackci`` user as an admin to your RTD project
#. generate a webhook URL via the "Integrations" dashboard page
#. provide the ``id`` from that URL in a ``rtd_webhook_id`` variable
You probably do not want to use this job directly, but rather
include the `docs-on-readthedocs template
<https://docs.openstack.org/infra/openstack-zuul-jobs/project-templates.html#project_template-docs-on-readthedocs>`__
run: playbooks/publish/trigger-rtd.yaml
post-review: true
final: true
secrets:
- rtd_credentials
- job:
name: project-config-check-main-yaml
description: |
Check file zuul.d/main.yaml in project-config.
pre-run: playbooks/check-main-yaml/pre.yaml
run: playbooks/project-config/run-tox.yaml
post-run: playbooks/check-main-yaml/post.yaml
allowed-projects:
- openstack/project-config
final: true
vars:
tox_envlist: add-projects-to-main
files:
- zuul/main.yaml
- gerrit/projects.yaml
# Limit number of translation jobs accessing translation server since
# Zanata has problems with too many concurrent accesses.
- semaphore:
name: translations
max: 10
- job:
name: upstream-translation-update
parent: propose-updates
description: |
Push strings for translation to translation server.
roles:
- zuul: openstack/openstack-zuul-jobs
pre-run: playbooks/translation/pre.yaml
run: playbooks/translation/upstream-translation-update.yaml
post-run:
- playbooks/translation/post.yaml
- playbooks/publish/openstack-artifacts.yaml
semaphore: translations
protected: true
vars:
fileserver_leading_path: translation-source
constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt'
required-projects:
- openstack/horizon
- openstack/requirements
# Zanata-cli needs Java 8 and will fail with newer Java, Bionic uses Java 11
# This fails Zanata up to version 4.6.2 (current release in March 2019).
nodeset: ubuntu-xenial
secrets:
- secret: site_tarballs
name: fileserver
- zanata_api_credentials
- job:
name: propose-translation-update
parent: propose-updates
description: |
Import translations from translation server to projects as
proposed change.
roles:
- zuul: openstack/openstack-zuul-jobs
pre-run: playbooks/translation/pre.yaml
run: playbooks/translation/propose-translation-update.yaml
post-run: playbooks/translation/post.yaml
vars:
constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt'
semaphore: translations
protected: true
required-projects:
- openstack/horizon
- openstack/requirements
# Zanata-cli needs Java 8 and will fail with newer Java, Bionic uses Java 11
# This fails Zanata up to version 4.6.2 (current release in March 2019).
nodeset: ubuntu-xenial
secrets:
- zanata_api_credentials
- job:
name: project-config-bindep-fallback
abstract: true
description: |
Check installation of binary packages for file
nodepool/elements/bindep-fallback.txt.
run: playbooks/bindep-fallback/run.yaml
files:
- nodepool/elements/bindep-fallback.txt
- playbooks/bindep-fallback/run.yaml
- job:
name: project-config-bindep-fallback-centos-7
parent: project-config-bindep-fallback
description: |
Check installation of binary packages for file
nodepool/elements/bindep-fallback.txt.
The testing is done for CentOS 7.
nodeset: centos-7
- job:
name: project-config-bindep-fallback-opensuse-15
parent: project-config-bindep-fallback
description: |
Check installation of binary packages for file
nodepool/elements/bindep-fallback.txt.
The testing is done for openSUSE Leap 15.0.
nodeset: opensuse-150
- job:
name: project-config-bindep-fallback-ubuntu-trusty
parent: project-config-bindep-fallback
description: |
Check installation of binary packages for file
nodepool/elements/bindep-fallback.txt.
The testing is done for Ubuntu Trusty.
nodeset: ubuntu-trusty
- job:
name: project-config-bindep-fallback-ubuntu-xenial
parent: project-config-bindep-fallback
description: |
Check installation of binary packages for file
nodepool/elements/bindep-fallback.txt.
The testing is done for Ubuntu Xenial.
nodeset: ubuntu-xenial