project-config/zuul.d/jobs.yaml

1118 lines
33 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
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
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
- 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
files:
- setup.cfg
- setup.py
- README.rst
- 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"
- 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
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
- 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-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: 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
allowed-projects:
- openstack/releases
required-projects:
- openstack/requirements
secrets:
- secret: afsdocs_secret
name: afs
vars:
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/treasuremap
vars:
publish_site: "airshipit.org/docs"
- 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-uc
parent: promote-tox-docs-site-base
description: |
Promote content to governance.openstack.org/uc.
final: true
allowed-projects:
- openstack/governance-uc
vars:
publish_site: "governance.openstack.org/uc"
- 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 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
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
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: 8
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: 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-centos-8
parent: build-wheel-mirror-base
description: |
Build CentOS 8 wheels for OpenStack CI mirrors.
nodeset:
nodes:
- name: wheel-mirror-centos-8-python3
label: centos-8
host-vars:
wheel-mirror-centos-8-python3:
wheel_python: python3
- job:
name: publish-wheel-mirror-centos-8
description: |
Publish CentOS 8 wheels for OpenStack CI mirrors.
parent: build-wheel-mirror-centos-8
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-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: 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: 3600
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
semaphore: translations
protected: true
vars:
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 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'
semaphore: translations
protected: true
required-projects:
- openstack/horizon
- openstack/requirements
# 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-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.
nodeset: opensuse-15
- 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