yatinkarel
2709879b2f
Follow up of [1] which worked fine for master but not with stable branches. [1] https://review.opendev.org/c/openstack/project-config/+/934325 Change-Id: Ic2b00e15da2721c15509dfe38c83cb472ed39d16
1294 lines
38 KiB
YAML
1294 lines
38 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: publish-openstack-artifacts
|
|
nodeset: ubuntu-focal
|
|
description: |
|
|
Publish job to upload artifacts to tarballs.openstack.org
|
|
post-review: true
|
|
post-run: playbooks/publish/openstack-artifacts.yaml
|
|
secrets:
|
|
- secret: afs_tarballs_opendev_org
|
|
name: afs
|
|
|
|
- job:
|
|
name: release-openstack-puppet
|
|
nodeset: ubuntu-jammy
|
|
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
|
|
|
|
- job:
|
|
name: test-release-openstack
|
|
nodeset: ubuntu-focal
|
|
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
|
|
files:
|
|
- setup.cfg
|
|
- setup.py
|
|
- README.rst
|
|
|
|
- job:
|
|
name: publish-openstack-python-tarball
|
|
parent: publish-openstack-artifacts
|
|
description: |
|
|
Release and sign OpenStack python tarballs to tarballs.o.o.
|
|
It is similar to release-openstack-python but
|
|
omits PyPI publication.
|
|
pre-run: playbooks/pti-python-tarball/pre.yaml
|
|
run: playbooks/pti-python-tarball/run.yaml
|
|
post-run:
|
|
- playbooks/pti-python-tarball/post.yaml
|
|
secrets:
|
|
- gpg_key
|
|
vars:
|
|
release_python: python3
|
|
|
|
- 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 ``promote-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: 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"
|
|
|
|
# AFS sync issues happen when multiple publish jobs run at the same time
|
|
# so we make it synchronous to avoid job failures
|
|
- semaphore:
|
|
name: publish-releasenotes
|
|
max: 1
|
|
|
|
- job:
|
|
name: publish-openstack-releasenotes-python3
|
|
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 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
|
|
pre-run: playbooks/releasenotes/pre.yaml
|
|
run: playbooks/releasenotes/run.yaml
|
|
post-run:
|
|
- playbooks/publish/releasenotes.yaml
|
|
- playbooks/publish/openstack-afs.yaml
|
|
semaphores: publish-releasenotes
|
|
# TODO(frickler): Drop the pin again after 2024.2 release
|
|
nodeset: ubuntu-jammy
|
|
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:
|
|
sphinx_python: python3
|
|
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: promote-openstack-specs-site
|
|
parent: promote-tox-docs-site-base
|
|
final: true
|
|
description: |
|
|
Publish OpenStack specs index.
|
|
|
|
Publish specs index to
|
|
/afs/.openstack.org/project/specs.openstack.org/
|
|
|
|
This is a promote job for ``build-openstack-specs-site``.
|
|
allowed-projects:
|
|
- openstack/project-config
|
|
vars:
|
|
download_artifact_job: build-openstack-specs-site
|
|
publish_site: "specs.openstack.org"
|
|
|
|
- job:
|
|
name: promote-openstack-specs
|
|
parent: promote-tox-docs-site-base
|
|
final: true
|
|
description: |
|
|
Publish OpenStack specs project.
|
|
|
|
Publish specs index to
|
|
/afs/.openstack.org/project/specs.openstack.org/{zuul[project][name]}.
|
|
|
|
This is a promote job for ``openstack-tox-docs``.
|
|
vars:
|
|
download_artifact_job: openstack-tox-docs
|
|
publish_site: "specs.openstack.org/{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 ``opendev-tox-docs``.
|
|
final: true
|
|
vars:
|
|
download_artifact_job: opendev-tox-docs
|
|
secrets:
|
|
- secret: afsdocs_secret-tox-docs-infra
|
|
name: afs
|
|
pass-to-parent: true
|
|
branches: master
|
|
|
|
- job:
|
|
name: promote-service-types-authority
|
|
parent: promote-tox-docs-site-base
|
|
description: |
|
|
Publish OpenStack Service Types Authority to
|
|
/afs/.openstack.org/project/service-typs.openstack.org/.
|
|
|
|
This is a promote job for ``service-types-authority-tox-publish``.
|
|
final: true
|
|
run: playbooks/service-types/promote.yaml
|
|
allowed-projects:
|
|
- openstack/service-types-authority
|
|
vars:
|
|
download_artifact_job: service-types-authority-tox-publish
|
|
publish_site: "service-types.openstack.org"
|
|
secrets:
|
|
- secret: afsdocs_secret-tox-docs-site
|
|
name: afs
|
|
pass-to-parent: true
|
|
|
|
- job:
|
|
name: promote-irc-meetings-ical
|
|
parent: promote-tox-docs-site-base
|
|
description: |
|
|
Publish OpenDev Meetings site/ical to
|
|
/afs/.openstack.org/project/meetings.opendev.org/.
|
|
|
|
This is a promote job for ``irc-meetings-ical-tox-publish``.
|
|
final: true
|
|
run: playbooks/service-types/promote.yaml
|
|
allowed-projects:
|
|
- opendev/irc-meetings
|
|
vars:
|
|
download_artifact_job: irc-meetings-ical-tox-publish
|
|
publish_site: "meetings.opendev.org"
|
|
secrets:
|
|
- secret: afsdocs_secret-tox-docs-site
|
|
name: afs
|
|
pass-to-parent: true
|
|
|
|
- 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
|
|
vars:
|
|
release_python: python3
|
|
|
|
# AFS sync issues happen when multiple publish jobs run at the same time
|
|
# so we make it synchronous to avoid job failures
|
|
- semaphore:
|
|
name: publish-release-docs
|
|
max: 1
|
|
|
|
- job:
|
|
name: publish-tox-docs-releases
|
|
description: |
|
|
Publish content of openstack/releases to
|
|
/afs/.openstack.org/project/releases.openstack.org/.
|
|
|
|
Builds the docs using ``tox -e docs``.
|
|
final: true
|
|
roles:
|
|
- zuul: openstack/openstack-zuul-jobs
|
|
pre-run: playbooks/project-config/pre-tox.yaml
|
|
run: playbooks/project-config/run-tox.yaml
|
|
post-run:
|
|
- playbooks/project-config/post-tox.yaml
|
|
- playbooks/sphinx/post-infra.yaml
|
|
- playbooks/publish/releases-afs.yaml
|
|
semaphores: publish-release-docs
|
|
allowed-projects:
|
|
- openstack/releases
|
|
required-projects:
|
|
- openstack/requirements
|
|
secrets:
|
|
- secret: afsdocs_secret
|
|
name: afs
|
|
vars:
|
|
bindep_profile: compile doc
|
|
tox_envlist: docs
|
|
afs_subpath: "/{{ zuul.project.short_name }}"
|
|
|
|
- job:
|
|
name: promote-tox-docs-site-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/project/{publish_site}.
|
|
|
|
This is a promote job for ``openstack-tox-docs``.
|
|
|
|
A job needs to set the variables `publish_site`.
|
|
abstract: true
|
|
protected: true
|
|
vars:
|
|
download_artifact_job: openstack-tox-docs
|
|
secrets:
|
|
- secret: afsdocs_secret-tox-docs-site
|
|
name: afs
|
|
pass-to-parent: true
|
|
|
|
- job:
|
|
name: promote-airship-docs-website
|
|
parent: promote-tox-docs-site-base
|
|
description: |
|
|
Promote root site content for docs.airshipit.org to airshipit.org/docs.
|
|
final: true
|
|
allowed-projects:
|
|
- airship/docs
|
|
vars:
|
|
publish_site: "airshipit.org/docs"
|
|
|
|
- job:
|
|
name: promote-airship-project-docs
|
|
parent: promote-tox-docs-site-base
|
|
description: |
|
|
Promote subproject doc content for docs.airshipit.org site.
|
|
final: true
|
|
allowed-projects:
|
|
- airship/airshipctl
|
|
- airship/airshipui
|
|
- airship/armada
|
|
- airship/charts
|
|
- airship/deckhand
|
|
- airship/divingbell
|
|
- airship/drydock
|
|
- airship/election
|
|
- airship/governance
|
|
- airship/pegleg
|
|
- airship/porthole
|
|
- airship/promenade
|
|
- airship/shipyard
|
|
- airship/specs
|
|
- airship/spyglass
|
|
- airship/spyglass-plugin-xls
|
|
- airship/treasuremap
|
|
vars:
|
|
publish_site: "airshipit.org/docs/{zuul[project][short_name]}"
|
|
|
|
- job:
|
|
name: promote-governance-election
|
|
parent: promote-tox-docs-site-base
|
|
description:
|
|
Promote content to governance.openstack.org/election.
|
|
final: true
|
|
allowed-projects:
|
|
- openstack/election
|
|
vars:
|
|
publish_site: "governance.openstack.org/election"
|
|
|
|
- job:
|
|
name: promote-governance-ideas
|
|
parent: promote-tox-docs-site-base
|
|
description:
|
|
Promote content to governance.openstack.org/ideas.
|
|
final: true
|
|
allowed-projects:
|
|
- openstack/ideas
|
|
vars:
|
|
publish_site: "governance.openstack.org/ideas"
|
|
|
|
- job:
|
|
name: promote-governance-sigs
|
|
parent: promote-tox-docs-site-base
|
|
description: |
|
|
Promote content to governance.openstack.org/sigs.
|
|
final: true
|
|
allowed-projects:
|
|
- openstack/governance-sigs
|
|
vars:
|
|
publish_site: "governance.openstack.org/sigs"
|
|
|
|
- job:
|
|
name: promote-governance-tc
|
|
parent: promote-tox-docs-site-base
|
|
description: |
|
|
Promote content to governance.openstack.org/sigs.
|
|
final: true
|
|
allowed-projects:
|
|
- openstack/governance
|
|
vars:
|
|
publish_site: "governance.openstack.org/tc"
|
|
|
|
- job:
|
|
name: promote-governance-website
|
|
parent: promote-tox-docs-site-base
|
|
description: |
|
|
Promote content to governance.openstack.org.
|
|
final: true
|
|
allowed-projects:
|
|
- openstack/governance-website
|
|
vars:
|
|
publish_site: "governance.openstack.org/governance"
|
|
|
|
- job:
|
|
name: promote-security
|
|
parent: promote-tox-docs-site-base
|
|
description: |
|
|
Promote content to security.openstack.org.
|
|
final: true
|
|
allowed-projects:
|
|
- openstack/ossa
|
|
vars:
|
|
publish_site: "security.openstack.org"
|
|
|
|
- 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 from the build-openstack-manuals job and
|
|
publish it on the 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
|
|
# A parent job playbook expects this to be defined
|
|
publish_site: "developer.openstack.org"
|
|
secrets:
|
|
# This also overrides the target AFS path inferred from publish_site
|
|
- 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: 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-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
|
|
vars:
|
|
npm_command: build
|
|
|
|
- job:
|
|
name: publish-openstack-stackviz-element
|
|
parent: publish-openstack-artifacts
|
|
description: |
|
|
Publish javascript content tarballs to tarballs.opendev.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.
|
|
|
|
This job publishes the tar ball as
|
|
https://tarballs.opendev.org/{{ zuul.project.name }}/dist/{{ zuul.project.short_name }}-latest.tar.gz.
|
|
This is specific to openstack/stackviz.
|
|
allowed-projects:
|
|
- openstack/stackviz
|
|
pre-run: playbooks/javascript/pre.yaml
|
|
run: playbooks/javascript/content.yaml
|
|
post-run: playbooks/javascript/post-stackviz.yaml
|
|
branches:
|
|
- master
|
|
vars:
|
|
node_version: 10
|
|
npm_command: prod
|
|
|
|
- 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: openstack-upload-github-mirror
|
|
parent: opendev-upload-git-mirror
|
|
description: |
|
|
Mirrors official projects to github's openstack org
|
|
final: true
|
|
protected: true
|
|
secrets:
|
|
- name: git_mirror_credentials
|
|
secret: openstack-github-mirroring
|
|
pass-to-parent: true
|
|
|
|
- job:
|
|
name: maintain-github-openstack-mirror
|
|
description: |
|
|
Runs maintenance scripts for the OpenStack GitHub mirror. The script
|
|
updates the descriptions, creates new repositories, archives retired
|
|
ones, and closes any open PR. It is meant to be run periodically.
|
|
final: true
|
|
protected: true
|
|
run: playbooks/maintain-github-mirror/run.yaml
|
|
required-projects:
|
|
- name: openstack/governance
|
|
secrets:
|
|
- name: github_credentials
|
|
secret: openstack-github-mirroring
|
|
vars:
|
|
project_config: "{{ zuul.projects['opendev.org/openstack/project-config'].src_dir }}"
|
|
governance: "{{ zuul.projects['opendev.org/openstack/governance'].src_dir }}"
|
|
|
|
|
|
- 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
|
|
# Note(frickler): The nodeset is pinned to Focal because we
|
|
# require both python 3.8 and 3.9 to be available. This is setup
|
|
# in the pre.yaml playbook above; so if this nodeset changes we
|
|
# need to carefully consider the python versions any change
|
|
# distribution provides and modify the playbook/job accordingly.
|
|
nodeset: ubuntu-focal
|
|
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
|
|
nodeset: ubuntu-jammy
|
|
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
|
|
|
|
# The wheel builds can finish at similar times, so to avoid many
|
|
# overlapping "vos release" processes we restrict it with a semaphore.
|
|
- semaphore:
|
|
name: wheel-release
|
|
max: 1
|
|
|
|
- job:
|
|
name: release-wheel-cache
|
|
abstract: true
|
|
protected: true
|
|
description: |
|
|
Release a wheel cache volume
|
|
run:
|
|
- name: playbooks/wheel/release.yaml
|
|
semaphores: wheel-release
|
|
nodeset:
|
|
nodes: []
|
|
secrets:
|
|
- name: afs
|
|
secret: afsadmin_keytab
|
|
|
|
- job:
|
|
name: publish-wheel-cache-centos-9-stream
|
|
description: |
|
|
Publish CentOS Stream 9 wheels for OpenStack CI mirrors.
|
|
parent: build-wheel-cache-centos-9-stream
|
|
pre-run: playbooks/openafs-client/setup.yaml
|
|
post-run: playbooks/publish/wheel-mirror.yaml
|
|
allowed-projects:
|
|
- openstack/requirements
|
|
final: true
|
|
secrets:
|
|
- name: afs
|
|
secret: wheel_keytab
|
|
|
|
- job:
|
|
name: release-wheel-cache-centos-9-stream
|
|
parent: release-wheel-cache
|
|
final: true
|
|
vars:
|
|
wheel_volume: 'mirror.wheel.cent9sx64'
|
|
|
|
- job:
|
|
name: publish-wheel-cache-centos-9-stream-arm64
|
|
description: |
|
|
Publish CentOS Stream 9 wheels for OpenStack CI mirrors.
|
|
parent: build-wheel-cache-centos-9-stream-arm64
|
|
pre-run: playbooks/openafs-client/setup.yaml
|
|
post-run: playbooks/publish/wheel-mirror.yaml
|
|
allowed-projects:
|
|
- openstack/requirements
|
|
final: true
|
|
secrets:
|
|
- name: afs
|
|
secret: wheel_keytab
|
|
|
|
- job:
|
|
name: release-wheel-cache-centos-9-stream-arm64
|
|
parent: release-wheel-cache
|
|
final: true
|
|
vars:
|
|
wheel_volume: 'mirror.wheel.cent9sa64'
|
|
|
|
- job:
|
|
name: publish-wheel-cache-debian-bullseye
|
|
description: |
|
|
Publish Debian bullseye wheels for OpenStack CI mirrors.
|
|
parent: build-wheel-cache-debian-bullseye
|
|
pre-run: playbooks/openafs-client/setup.yaml
|
|
post-run: playbooks/publish/wheel-mirror.yaml
|
|
allowed-projects:
|
|
- openstack/requirements
|
|
final: true
|
|
secrets:
|
|
- name: afs
|
|
secret: wheel_keytab
|
|
|
|
- job:
|
|
name: release-wheel-cache-debian-bullseye
|
|
parent: release-wheel-cache
|
|
final: true
|
|
vars:
|
|
wheel_volume: 'mirror.wheel.deb11x64'
|
|
|
|
- job:
|
|
name: publish-wheel-cache-debian-bullseye-arm64
|
|
description: |
|
|
Publish Debian bullseye wheels for OpenStack CI mirrors.
|
|
parent: build-wheel-cache-debian-bullseye-arm64
|
|
pre-run: playbooks/openafs-client/setup.yaml
|
|
post-run: playbooks/publish/wheel-mirror.yaml
|
|
allowed-projects:
|
|
- openstack/requirements
|
|
final: true
|
|
secrets:
|
|
- name: afs
|
|
secret: wheel_keytab
|
|
|
|
- job:
|
|
name: release-wheel-cache-debian-bullseye-arm64
|
|
parent: release-wheel-cache
|
|
final: true
|
|
vars:
|
|
wheel_volume: 'mirror.wheel.deb11a64'
|
|
|
|
- job:
|
|
name: publish-wheel-cache-ubuntu-jammy
|
|
parent: build-wheel-cache-ubuntu-jammy
|
|
description: |
|
|
Publish Ubuntu Jammy wheels for OpenStack CI mirrors.
|
|
pre-run: playbooks/openafs-client/setup.yaml
|
|
post-run: playbooks/publish/wheel-mirror.yaml
|
|
allowed-projects:
|
|
- openstack/requirements
|
|
final: true
|
|
secrets:
|
|
- name: afs
|
|
secret: wheel_keytab
|
|
|
|
- job:
|
|
name: release-wheel-cache-ubuntu-jammy
|
|
parent: release-wheel-cache
|
|
final: true
|
|
vars:
|
|
wheel_volume: 'mirror.wheel.jammyx64'
|
|
|
|
- job:
|
|
name: publish-wheel-cache-ubuntu-jammy-arm64
|
|
parent: build-wheel-cache-ubuntu-jammy-arm64
|
|
description: |
|
|
Publish Ubuntu Jammy wheels for OpenStack CI mirrors.
|
|
pre-run: playbooks/openafs-client/setup.yaml
|
|
post-run: playbooks/publish/wheel-mirror.yaml
|
|
allowed-projects:
|
|
- openstack/requirements
|
|
final: true
|
|
secrets:
|
|
- name: afs
|
|
secret: wheel_keytab
|
|
|
|
- job:
|
|
name: release-wheel-cache-ubuntu-jammy-arm64
|
|
parent: release-wheel-cache
|
|
final: true
|
|
vars:
|
|
wheel_volume: 'mirror.wheel.jammya64'
|
|
|
|
- job:
|
|
name: publish-wheel-cache-ubuntu-focal
|
|
parent: build-wheel-cache-ubuntu-focal
|
|
description: |
|
|
Publish Ubuntu Focal wheels for OpenStack CI mirrors.
|
|
pre-run: playbooks/openafs-client/setup.yaml
|
|
post-run: playbooks/publish/wheel-mirror.yaml
|
|
allowed-projects:
|
|
- openstack/requirements
|
|
final: true
|
|
secrets:
|
|
- name: afs
|
|
secret: wheel_keytab
|
|
|
|
- job:
|
|
name: release-wheel-cache-ubuntu-focal
|
|
parent: release-wheel-cache
|
|
final: true
|
|
vars:
|
|
wheel_volume: 'mirror.wheel.focalx64'
|
|
|
|
- job:
|
|
name: publish-wheel-cache-ubuntu-focal-arm64
|
|
parent: build-wheel-cache-ubuntu-focal-arm64
|
|
description: |
|
|
Publish Ubuntu Focal wheels for OpenStack CI mirrors.
|
|
pre-run: playbooks/openafs-client/setup.yaml
|
|
post-run: playbooks/publish/wheel-mirror.yaml
|
|
allowed-projects:
|
|
- openstack/requirements
|
|
final: true
|
|
secrets:
|
|
- name: afs
|
|
secret: wheel_keytab
|
|
|
|
- job:
|
|
name: release-wheel-cache-ubuntu-focal-arm64
|
|
parent: release-wheel-cache
|
|
final: true
|
|
vars:
|
|
wheel_volume: 'mirror.wheel.focala64'
|
|
|
|
- job:
|
|
name: publish-wheel-cache-ubuntu-bionic
|
|
parent: build-wheel-cache-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
|
|
allowed-projects:
|
|
- openstack/requirements
|
|
final: true
|
|
secrets:
|
|
- name: afs
|
|
secret: wheel_keytab
|
|
|
|
- job:
|
|
name: release-wheel-cache-ubuntu-bionic
|
|
parent: release-wheel-cache
|
|
final: true
|
|
vars:
|
|
wheel_volume: 'mirror.wheel.bionicx64'
|
|
|
|
- job:
|
|
name: publish-wheel-cache-ubuntu-bionic-arm64
|
|
parent: build-wheel-cache-ubuntu-bionic-arm64
|
|
description: |
|
|
Publish Ubuntu Bionic wheels for OpenStack CI mirrors.
|
|
pre-run: playbooks/openafs-client/setup.yaml
|
|
post-run: playbooks/publish/wheel-mirror.yaml
|
|
allowed-projects:
|
|
- openstack/requirements
|
|
final: true
|
|
secrets:
|
|
- name: afs
|
|
secret: wheel_keytab
|
|
|
|
- job:
|
|
name: release-wheel-cache-ubuntu-bionic-arm64
|
|
parent: release-wheel-cache
|
|
final: true
|
|
vars:
|
|
wheel_volume: 'mirror.wheel.bionica64'
|
|
|
|
- job:
|
|
name: check-release-approval
|
|
description: |
|
|
Checks that release requests were approved by PTL or release liaison.
|
|
|
|
This job is specific to the openstack/releases repository.
|
|
files:
|
|
- ^deliverables/.*$
|
|
allowed-projects:
|
|
- openstack/releases
|
|
required-projects:
|
|
- name: openstack/governance
|
|
run: playbooks/check-release-approval/run.yaml
|
|
final: true
|
|
timeout: 120
|
|
nodeset:
|
|
nodes: []
|
|
|
|
- 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
|
|
timeout: 7200
|
|
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/translation/openstack-translation-artifacts.yaml
|
|
semaphores: translations
|
|
protected: true
|
|
vars:
|
|
constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt'
|
|
required-projects:
|
|
- openstack/horizon
|
|
- name: openstack/requirements
|
|
override-checkout: stable/2024.2
|
|
branches: master
|
|
# Zanata-cli needs Java 8 and will fail with newer Java, Bionic has Java 8
|
|
# This was tested with Zanata up to version 4.6.2 (current release in March 2019).
|
|
nodeset: ubuntu-bionic
|
|
secrets:
|
|
- zanata_api_credentials
|
|
- secret: afs_tarballs_opendev_org
|
|
name: afs
|
|
|
|
- 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/translation/openstack-translation-artifacts.yaml
|
|
semaphores: translations
|
|
protected: true
|
|
vars:
|
|
constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt'
|
|
required-projects:
|
|
- openstack/horizon
|
|
- openstack/requirements
|
|
branches:
|
|
regex: ^master$
|
|
negate: true
|
|
# Zanata-cli needs Java 8 and will fail with newer Java, Bionic has Java 8
|
|
# This was tested with Zanata up to version 4.6.2 (current release in March 2019).
|
|
nodeset: ubuntu-bionic
|
|
secrets:
|
|
- zanata_api_credentials
|
|
- secret: afs_tarballs_opendev_org
|
|
name: afs
|
|
|
|
- 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'
|
|
semaphores: translations
|
|
protected: true
|
|
required-projects:
|
|
- openstack/horizon
|
|
- name: openstack/requirements
|
|
override-checkout: stable/2024.2
|
|
branches: master
|
|
# Zanata-cli needs Java 8 and will fail with newer Java, Bionic has Java 8.
|
|
# This was tested with Zanata up to version 4.6.2 (current release in March 2019).
|
|
nodeset: ubuntu-bionic
|
|
secrets:
|
|
- 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'
|
|
semaphores: translations
|
|
protected: true
|
|
required-projects:
|
|
- openstack/horizon
|
|
- openstack/requirements
|
|
branches:
|
|
regex: ^master$
|
|
negate: true
|
|
# Zanata-cli needs Java 8 and will fail with newer Java, Bionic has Java 8.
|
|
# This was tested with Zanata up to version 4.6.2 (current release in March 2019).
|
|
nodeset: ubuntu-bionic
|
|
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-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
|
|
|
|
- job:
|
|
name: openstack-fips
|
|
abstract: true
|
|
description: |
|
|
Base job for OpenStack jobs that enables an
|
|
Ubuntu Advantage subscription if FIPS is enabled.
|
|
secrets:
|
|
- secret: openstack_ubuntu_fips
|
|
name: ubuntu_ua_token
|
|
pre-run: playbooks/openstack-fips/pre.yaml
|