Split zuul.yaml into files in zuul.d

In preparation for migration, split the zuul.yaml file.

Change-Id: I07059f8203d92dd0ccb7bb5a40e771ad37f91a3d
This commit is contained in:
Monty Taylor 2017-09-25 09:06:22 -05:00
parent 4b4deadc1c
commit 5bf07a72d8
No known key found for this signature in database
GPG Key ID: 7BAE94BC7141A594
4 changed files with 654 additions and 642 deletions

316
zuul.d/jobs.yaml Normal file
View File

@ -0,0 +1,316 @@
# Shared zuul config specific to the OpenStack Project
# Contains definitions of trusted jobs
# Overrides jobs from:
# https://git.openstack.org/cgit/openstack-infra/zuul-jobs
- job:
name: base
parent: null
description: |
The base job for OpenStack's installation of Zuul.
All jobs ultimately inherit from this. It runs a pre-playbook
which copies all of the job's prepared git repos on to all of
the nodes in the nodeset. It runs a post-playbook which copies
all of the files in the logs/ subdirectory of the executor
work directory to the logserver.
It also sets default timeout and nodeset values (which may be
overidden).
pre-run: playbooks/base/pre
post-run:
- playbooks/base/post-ssh
- playbooks/base/post-logs
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
timeout: 1800
nodeset:
nodes:
- name: ubuntu-xenial
label: ubuntu-xenial
secrets:
- site_logs
- job:
name: base-minimal
parent: null
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 and does not generate an ARA report.
These tasks, if required, can be included by the dependant jobs
themselves on a need basis.
pre-run: playbooks/base-minimal/pre
post-run:
- playbooks/base-minimal/post-ssh
- playbooks/base-minimal/post-logs
roles:
- zuul: openstack-infra/zuul-jobs
timeout: 1800
nodeset:
nodes:
- name: ubuntu-xenial
label: ubuntu-xenial
secrets:
- site_logs
- job:
name: base-test
parent: null
description: |
A job to test changes to the base job without disturbing the
main job in production. Not for general use.
pre-run: playbooks/base-test/pre
post-run:
- playbooks/base-test/post-ssh
- playbooks/base-test/post-logs
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
timeout: 1800
nodeset:
nodes:
- name: ubuntu-xenial
label: ubuntu-xenial
secrets:
- site_logs
- job:
name: publish-openstack-artifacts
description: |
Publish job to upload artifacts to tarballs.openstack.org
post-run: playbooks/publish/openstack-artifacts
secrets:
- secret: site_tarballs
name: fileserver
- job:
name: release-openstack-python
parent: publish-openstack-artifacts
description: |
Release python tarballs / wheels to pypi.
pre-run: playbooks/python-tarball/pre
run: playbooks/python-tarball/run
post-run:
- playbooks/python-tarball/post
- playbooks/publish/pypi
secrets:
- secret: testpypi_secret
name: pypi_info
- gpg_key
- job:
name: publish-openstack-python-docs
description: |
Publish the results of the openstack-build-doc job to
/afs/.openstack.org/docs/{{ zuul.project.short_name }}
final: True
pre-run: playbooks/python-docs/pre
run: playbooks/python-docs/run
post-run:
- playbooks/python-docs/post
- playbooks/publish/openstack-afs
required-projects:
- name: openstack/requirements
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
vars:
tox_constraints_file: "{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt"
secrets:
- secret: afsdocs_secret
name: afs
- job:
name: publish-openstack-specs
description: |
Publish OpenStack specs to static.openstack.org
specs/{{ zuul.project.short_name }}
final: True
pre-run: playbooks/python-docs/pre
run: playbooks/python-docs/run
post-run: playbooks/publish/openstack-specs
required-projects:
- name: openstack/requirements
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
vars:
tox_constraints_file: "{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt"
secrets:
- site_logs
- job:
name: publish-openstack-specs-site
description: |
Publish OpenStack specs site to static.openstack.org specs/
final: True
pre-run: playbooks/python-docs/pre
run: playbooks/python-docs/run
post-run: playbooks/publish/openstack-specs-site
required-projects:
- name: openstack/requirements
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
vars:
tox_constraints_file: "{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt"
secrets:
- site_logs
- job:
name: publish-openstack-python-docs-infra
description: |
Publish the results of the tox-docs job to
/afs/.openstack.org/infra/{{ zuul.project.short_name }}
final: True
pre-run: playbooks/python-docs/pre
run: playbooks/python-docs/run
post-run:
- playbooks/python-docs/post-infra
- playbooks/publish/infra-afs
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
secrets:
- secret: afsdocs_secret
name: afs
- job:
name: publish-service-types-authority
description: |
Publish OpenStack Service Types Authority to
https://service-types.openstack.org
final: True
pre-run: playbooks/python-docs/pre
run: playbooks/service-types/run
post-run: playbooks/publish/service-types
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
secrets:
- site_logs
- job:
name: publish-openstack-python-docs-infra-index
description: |
Publish the results of the tox-docs job to /afs/.openstack.org/infra
final: True
pre-run: playbooks/python-docs/pre
run: playbooks/python-docs/run
post-run:
- playbooks/python-docs/post-infra
- playbooks/publish/infra-index
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
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/python-tarball/pre
run: playbooks/python-tarball/run
post-run: playbooks/python-branch-tarball/post
- job:
name: publish-irc-meetings
description: |
Publish the IRC meeting calendars to eavesdrop.openstack.org.
final: True
pre-run: playbooks/yaml2ical/pre
run: playbooks/yaml2ical/run
post-run: playbooks/yaml2ical/post
secrets:
- eavesdrop_ssh_key
- job:
name: propose-updates
pre-run: playbooks/proposal/pre
run: playbooks/proposal/propose-updates
secrets:
- secret: proposal_ssh_key
name: ssh_key
- job:
name: propose-update-constraints
parent: propose-updates
run: playbooks/proposal/propose-update-constraints
dependencies:
- release-openstack-python
- semaphore:
name: wheel-mirror
max: 1
- job:
name: build-wheel-mirror
pre-run: playbooks/wheel/pre
run: playbooks/wheel/build
post-run: playbooks/wheel/release
nodeset:
# NOTE: The python2 and python3 suffix are important, they select the
# version of python to build in each job. (we pull the last character of
# the inventory_hostname)
# TODO(mordred): Replace the suffix with host_vars once we have them.
nodes:
- name: wheel-mirror-ubuntu-xenial-python2
label: ubuntu-xenial
- name: wheel-mirror-ubuntu-trusty-python2
label: ubuntu-trusty
- name: wheel-mirror-ubuntu-xenial-python3
label: ubuntu-xenial
- name: wheel-mirror-ubuntu-trusty-python3
label: ubuntu-trusty
# 2.5 hours
timeout: 9000
allowed-projects:
- openstack/requirements
roles:
- zuul: openstack-infra/ansible-puppet
name: puppet
required-projects:
- openstack-infra/system-config
- openstack-infra/puppet-kerberos
- openstack-infra/puppet-openafs
semaphore: wheel-mirror
secrets:
- name: afs
secret: wheel_keytab
- job:
name: release-wheel-mirror
run: playbooks/wheel/release
nodeset:
nodes: []
secrets:
- name: afs
secret: afsadmin_keytab
- job:
name: tag-releases
pre-run: playbooks/release/pre
run: playbooks/release/tag
post-run: playbooks/release/post
final: true
secrets:
- name: lp_creds
secret: lp_creds
- name: ssh_key
secret: release_ssh_key
- job:
name: project-config-check-main-yaml
pre-run: playbooks/check-main-yaml/pre
run: playbooks/check-main-yaml/run
post-run: playbooks/check-main-yaml/post
allowed-projects:
- openstack-infra/project-config
files:
- zuul/main.yaml
- gerrit/projects.yaml

281
zuul.d/pipelines.yaml Normal file
View File

@ -0,0 +1,281 @@
# Shared zuul config specific to the OpenStack Project
# Contains definitions of pipelines
- pipeline:
name: check
description: |
Newly uploaded patchsets enter this pipeline to receive an
initial +/-1 Verified vote.
manager: independent
trigger:
gerrit:
- event: patchset-created
- event: change-restored
- event: comment-added
comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*recheck
- event: comment-added
require-approval:
- verified: [-1, -2]
username: zuul
approval:
- workflow: 1
github:
- event: pull_request
action:
- opened
- changed
- reopened
- event: pull_request
action: comment
comment: (?i)^\s*recheck\s*$
start:
github:
status: pending
comment: false
success:
gerrit:
# Note that gerrit keywords are case-sensitive.
Verified: 1
github:
status: 'success'
mysql:
failure:
gerrit:
Verified: -1
github:
status: 'failure'
mysql:
- pipeline:
name: gate
description: |
Changes that have been approved by core developers are enqueued
in order in this pipeline, and if they pass tests, will be
merged.
success-message: Build succeeded (gate pipeline).
failure-message: |
Build failed (gate pipeline). For information on how to proceed, see
http://docs.openstack.org/infra/manual/developers.html#automated-testing
manager: dependent
precedence: high
require:
gerrit:
open: True
current-patchset: True
approval:
- Verified: [1, 2]
username: zuul
- Workflow: 1
trigger:
gerrit:
- event: comment-added
approval:
- Workflow: 1
- event: comment-added
approval:
- Verified: 1
username: zuul
start:
gerrit:
Verified: 0
success:
gerrit:
Verified: 2
submit: true
mysql:
failure:
gerrit:
Verified: -2
mysql:
window-floor: 20
window-increase-factor: 2
- pipeline:
name: post
description: This pipeline runs jobs that operate after each change is merged.
manager: independent
precedence: low
trigger:
gerrit:
- event: ref-updated
ref: ^refs/heads/.*$
- pipeline:
name: pre-release
# NOTE(mordred): pre-release pipeline needs access to credentials (eg: pypi).
post-review: true
description: When a commit is tagged with a pre-release tag, this pipeline runs jobs that publish archives and documentation.
manager: independent
precedence: high
trigger:
gerrit:
- event: ref-updated
ref: ^refs/tags/[0-9]+(\.[0-9]+)*(a|b|rc)[0-9]+$
failure:
smtp:
from: zuul@openstack.org
to: release-job-failures@lists.openstack.org
subject: 'Pre-release of {change.project} failed'
- pipeline:
name: release
# NOTE(pabelanger): release pipeline needs access to credentials (eg: pypi).
post-review: true
description: When a commit is tagged as a release, this pipeline runs jobs that publish archives and documentation.
manager: independent
precedence: high
trigger:
gerrit:
- event: ref-updated
ref: ^refs/tags/[0-9]+(\.[0-9]+)*$
failure:
smtp:
from: zuul@openstack.org
to: release-job-failures@lists.openstack.org
subject: 'Release of {change.project} failed'
- pipeline:
name: periodic
post-review: true
description: Jobs in this queue are triggered on a timer.
manager: independent
precedence: low
trigger:
timer:
- time: '0 6 * * *'
- pipeline:
name: release-post
# NOTE(mordred): release-post needs access to credentials (eg: pypi).
post-review: true
description: This pipeline runs release-process-critical jobs that operate after specific changes are merged.
manager: independent
precedence: high
trigger:
gerrit:
- event: ref-updated
ref: ^refs/heads/.*$
failure:
smtp:
from: zuul@openstack.org
to: release-job-failures@lists.openstack.org
subject: 'release-post job for {change.project} failed'
- pipeline:
name: tag
post-review: true
description: This pipeline runs jobs in response to any tag event.
manager: independent
precedence: high
trigger:
gerrit:
- event: ref-updated
ref: ^refs/tags/.*$
failure:
smtp:
from: zuul@openstack.org
to: release-job-failures@lists.openstack.org
subject: 'Tag of {change.project} failed'
- pipeline:
name: periodic-stable
post-review: true
description: Periodic checks of the stable branches.
manager: independent
precedence: low
trigger:
timer:
- time: '1 6 * * *'
failure:
smtp:
from: zuul@openstack.org
to: openstack-stable-maint@lists.openstack.org
subject: 'Stable check of {change.project} failed'
- pipeline:
name: experimental
description: On-demand pipeline for requesting a run against a set of jobs that are not yet gating. Leave review comment of "check experimental" to run jobs in this pipeline.
success-message: Build succeeded (experimental pipeline).
failure-message: Build failed (experimental pipeline).
manager: independent
precedence: normal
trigger:
gerrit:
- event: comment-added
comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*check experimental\s*$
success:
gerrit: {}
failure:
gerrit: {}
- pipeline:
name: check-tripleo
description: >
Newly uploaded patchsets enter this pipeline to receive an initial +/-1
Verified vote from the "zuul" user. This is used for TripleO patchsets
only so that if the TripleO cloud suffers a failure, folk looking can
tell that there isn't a system infra problem, only a TripleO specific
problem.
Once the TripleO test cloud is multi region and has some months of
proven stability this will be folded back into the normal check pipeline.
success-message: Build succeeded (check-tripleo pipeline).
failure-message: >
Build failed (check-tripleo pipeline). For information on how to
proceed, see
http://docs.openstack.org/infra/manual/developers.html#automated-testing
manager: independent
precedence: normal
trigger:
gerrit:
- event: patchset-created
- event: change-restored
- event: comment-added
comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*recheck
require:
gerrit:
open: True
current-patchset: True
success:
gerrit: {}
failure:
gerrit: {}
- pipeline:
name: experimental-tripleo
description: >
On-demand pipeline for requesting a run against a tripleo experimental
jobs - slower and running without redundancy - so not yet gating. Leave
review comment of "check experimental" to run jobs in this pipeline.
success-message: Build succeeded (experimental-tripleo).
failure-message: Build failed (experimental-tripleo).
manager: independent
precedence: low
trigger:
gerrit:
- event: comment-added
comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*check experimental\s*$
success:
gerrit: {}
failure:
gerrit: {}
- pipeline:
name: merge-check
description: >
Each time a change merges, this pipeline verifies that all open changes
on the same project are still mergeable.
failure-message: Build failed (merge-check pipeline).
manager: independent
ignore-dependencies: true
precedence: low
require:
gerrit:
approval:
- verified: [1, 2]
username: zuul
trigger:
zuul:
- event: project-change-merged
merge-failure:
gerrit:
verified: -1

56
zuul.d/projects.yaml Normal file
View File

@ -0,0 +1,56 @@
# Shared zuul config specific to the OpenStack Project
# Contains project pipeline definitions
# This project definition is here so that the only zuul config in
# zuul-jobs are the jobs themselves (to make it easy for other users
# to consume).
- project:
name: openstack-infra/zuul-jobs
templates:
- publish-openstack-python-docs-infra
check:
jobs:
- base-integration-centos-7
- base-integration-debian-jessie
- base-integration-fedora-26
- base-integration-ubuntu-trusty
- base-integration-ubuntu-xenial
- base-integration-opensuse423
- tox-linters
- tox-py35-on-zuul
gate:
jobs:
- base-integration-centos-7
- base-integration-debian-jessie
- base-integration-fedora-26
- base-integration-ubuntu-trusty
- base-integration-ubuntu-xenial
- base-integration-opensuse423
- tox-linters
- tox-py35-on-zuul
- project:
name: openstack-dev/sandbox
release:
jobs:
- release-openstack-python
- project:
name: openstack/requirements
periodic:
jobs:
# This is a periodic job to ensure that our wheels are reasonably
# up-to-date. It uses the upper-constraints files from requirements.
- build-wheel-mirror
- release-wheel-mirror:
dependencies:
- build-wheel-mirror
- project:
name: openstack-infra/project-config
check:
jobs:
- project-config-check-main-yaml
- zuul-migrate:
files:
- zuul/mapping.yaml

View File

@ -1,593 +1,5 @@
# Shared zuul config specific to the OpenStack Project
# Contains definitions of trusted jobs
# Overrides jobs from:
# https://git.openstack.org/cgit/openstack-infra/zuul-jobs
- pipeline:
name: check
description: |
Newly uploaded patchsets enter this pipeline to receive an
initial +/-1 Verified vote.
manager: independent
trigger:
gerrit:
- event: patchset-created
- event: change-restored
- event: comment-added
comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*recheck
- event: comment-added
require-approval:
- verified: [-1, -2]
username: zuul
approval:
- workflow: 1
github:
- event: pull_request
action:
- opened
- changed
- reopened
- event: pull_request
action: comment
comment: (?i)^\s*recheck\s*$
start:
github:
status: pending
comment: false
success:
gerrit:
# Note that gerrit keywords are case-sensitive.
Verified: 1
github:
status: 'success'
mysql:
failure:
gerrit:
Verified: -1
github:
status: 'failure'
mysql:
- pipeline:
name: gate
description: |
Changes that have been approved by core developers are enqueued
in order in this pipeline, and if they pass tests, will be
merged.
success-message: Build succeeded (gate pipeline).
failure-message: |
Build failed (gate pipeline). For information on how to proceed, see
http://docs.openstack.org/infra/manual/developers.html#automated-testing
manager: dependent
precedence: high
require:
gerrit:
open: True
current-patchset: True
approval:
- Verified: [1, 2]
username: zuul
- Workflow: 1
trigger:
gerrit:
- event: comment-added
approval:
- Workflow: 1
- event: comment-added
approval:
- Verified: 1
username: zuul
start:
gerrit:
Verified: 0
success:
gerrit:
Verified: 2
submit: true
mysql:
failure:
gerrit:
Verified: -2
mysql:
window-floor: 20
window-increase-factor: 2
- pipeline:
name: post
description: This pipeline runs jobs that operate after each change is merged.
manager: independent
precedence: low
trigger:
gerrit:
- event: ref-updated
ref: ^refs/heads/.*$
- pipeline:
name: pre-release
# NOTE(mordred): pre-release pipeline needs access to credentials (eg: pypi).
post-review: true
description: When a commit is tagged with a pre-release tag, this pipeline runs jobs that publish archives and documentation.
manager: independent
precedence: high
trigger:
gerrit:
- event: ref-updated
ref: ^refs/tags/[0-9]+(\.[0-9]+)*(a|b|rc)[0-9]+$
failure:
smtp:
from: zuul@openstack.org
to: release-job-failures@lists.openstack.org
subject: 'Pre-release of {change.project} failed'
- pipeline:
name: release
# NOTE(pabelanger): release pipeline needs access to credentials (eg: pypi).
post-review: true
description: When a commit is tagged as a release, this pipeline runs jobs that publish archives and documentation.
manager: independent
precedence: high
trigger:
gerrit:
- event: ref-updated
ref: ^refs/tags/[0-9]+(\.[0-9]+)*$
failure:
smtp:
from: zuul@openstack.org
to: release-job-failures@lists.openstack.org
subject: 'Release of {change.project} failed'
- pipeline:
name: periodic
post-review: true
description: Jobs in this queue are triggered on a timer.
manager: independent
precedence: low
trigger:
timer:
- time: '0 6 * * *'
- pipeline:
name: release-post
# NOTE(mordred): release-post needs access to credentials (eg: pypi).
post-review: true
description: This pipeline runs release-process-critical jobs that operate after specific changes are merged.
manager: independent
precedence: high
trigger:
gerrit:
- event: ref-updated
ref: ^refs/heads/.*$
failure:
smtp:
from: zuul@openstack.org
to: release-job-failures@lists.openstack.org
subject: 'release-post job for {change.project} failed'
- pipeline:
name: tag
post-review: true
description: This pipeline runs jobs in response to any tag event.
manager: independent
precedence: high
trigger:
gerrit:
- event: ref-updated
ref: ^refs/tags/.*$
failure:
smtp:
from: zuul@openstack.org
to: release-job-failures@lists.openstack.org
subject: 'Tag of {change.project} failed'
- pipeline:
name: periodic-stable
post-review: true
description: Periodic checks of the stable branches.
manager: independent
precedence: low
trigger:
timer:
- time: '1 6 * * *'
failure:
smtp:
from: zuul@openstack.org
to: openstack-stable-maint@lists.openstack.org
subject: 'Stable check of {change.project} failed'
- pipeline:
name: experimental
description: On-demand pipeline for requesting a run against a set of jobs that are not yet gating. Leave review comment of "check experimental" to run jobs in this pipeline.
success-message: Build succeeded (experimental pipeline).
failure-message: Build failed (experimental pipeline).
manager: independent
precedence: normal
trigger:
gerrit:
- event: comment-added
comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*check experimental\s*$
success:
gerrit: {}
failure:
gerrit: {}
- pipeline:
name: check-tripleo
description: >
Newly uploaded patchsets enter this pipeline to receive an initial +/-1
Verified vote from the "zuul" user. This is used for TripleO patchsets
only so that if the TripleO cloud suffers a failure, folk looking can
tell that there isn't a system infra problem, only a TripleO specific
problem.
Once the TripleO test cloud is multi region and has some months of
proven stability this will be folded back into the normal check pipeline.
success-message: Build succeeded (check-tripleo pipeline).
failure-message: >
Build failed (check-tripleo pipeline). For information on how to
proceed, see
http://docs.openstack.org/infra/manual/developers.html#automated-testing
manager: independent
precedence: normal
trigger:
gerrit:
- event: patchset-created
- event: change-restored
- event: comment-added
comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*recheck
require:
gerrit:
open: True
current-patchset: True
success:
gerrit: {}
failure:
gerrit: {}
- pipeline:
name: experimental-tripleo
description: >
On-demand pipeline for requesting a run against a tripleo experimental
jobs - slower and running without redundancy - so not yet gating. Leave
review comment of "check experimental" to run jobs in this pipeline.
success-message: Build succeeded (experimental-tripleo).
failure-message: Build failed (experimental-tripleo).
manager: independent
precedence: low
trigger:
gerrit:
- event: comment-added
comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*check experimental\s*$
success:
gerrit: {}
failure:
gerrit: {}
- pipeline:
name: merge-check
description: >
Each time a change merges, this pipeline verifies that all open changes
on the same project are still mergeable.
failure-message: Build failed (merge-check pipeline).
manager: independent
ignore-dependencies: true
precedence: low
require:
gerrit:
approval:
- verified: [1, 2]
username: zuul
trigger:
zuul:
- event: project-change-merged
merge-failure:
gerrit:
verified: -1
- job:
name: base
parent: null
description: |
The base job for OpenStack's installation of Zuul.
All jobs ultimately inherit from this. It runs a pre-playbook
which copies all of the job's prepared git repos on to all of
the nodes in the nodeset. It runs a post-playbook which copies
all of the files in the logs/ subdirectory of the executor
work directory to the logserver.
It also sets default timeout and nodeset values (which may be
overidden).
pre-run: playbooks/base/pre
post-run:
- playbooks/base/post-ssh
- playbooks/base/post-logs
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
timeout: 1800
nodeset:
nodes:
- name: ubuntu-xenial
label: ubuntu-xenial
secrets:
- site_logs
- job:
name: base-minimal
parent: null
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 and does not generate an ARA report.
These tasks, if required, can be included by the dependant jobs
themselves on a need basis.
pre-run: playbooks/base-minimal/pre
post-run:
- playbooks/base-minimal/post-ssh
- playbooks/base-minimal/post-logs
roles:
- zuul: openstack-infra/zuul-jobs
timeout: 1800
nodeset:
nodes:
- name: ubuntu-xenial
label: ubuntu-xenial
secrets:
- site_logs
- job:
name: base-test
parent: null
description: |
A job to test changes to the base job without disturbing the
main job in production. Not for general use.
pre-run: playbooks/base-test/pre
post-run:
- playbooks/base-test/post-ssh
- playbooks/base-test/post-logs
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
timeout: 1800
nodeset:
nodes:
- name: ubuntu-xenial
label: ubuntu-xenial
secrets:
- site_logs
- job:
name: publish-openstack-artifacts
description: |
Publish job to upload artifacts to tarballs.openstack.org
post-run: playbooks/publish/openstack-artifacts
secrets:
- secret: site_tarballs
name: fileserver
- job:
name: release-openstack-python
parent: publish-openstack-artifacts
description: |
Release python tarballs / wheels to pypi.
pre-run: playbooks/python-tarball/pre
run: playbooks/python-tarball/run
post-run:
- playbooks/python-tarball/post
- playbooks/publish/pypi
secrets:
- secret: testpypi_secret
name: pypi_info
- gpg_key
- job:
name: publish-openstack-python-docs
description: |
Publish the results of the openstack-build-doc job to
/afs/.openstack.org/docs/{{ zuul.project.short_name }}
final: True
pre-run: playbooks/python-docs/pre
run: playbooks/python-docs/run
post-run:
- playbooks/python-docs/post
- playbooks/publish/openstack-afs
required-projects:
- name: openstack/requirements
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
vars:
tox_constraints_file: "{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt"
secrets:
- secret: afsdocs_secret
name: afs
- job:
name: publish-openstack-specs
description: |
Publish OpenStack specs to static.openstack.org
specs/{{ zuul.project.short_name }}
final: True
pre-run: playbooks/python-docs/pre
run: playbooks/python-docs/run
post-run: playbooks/publish/openstack-specs
required-projects:
- name: openstack/requirements
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
vars:
tox_constraints_file: "{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt"
secrets:
- site_logs
- job:
name: publish-openstack-specs-site
description: |
Publish OpenStack specs site to static.openstack.org specs/
final: True
pre-run: playbooks/python-docs/pre
run: playbooks/python-docs/run
post-run: playbooks/publish/openstack-specs-site
required-projects:
- name: openstack/requirements
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
vars:
tox_constraints_file: "{{ ansible_user_dir }}/src/git.openstack.org/openstack/requirements/upper-constraints.txt"
secrets:
- site_logs
- job:
name: publish-openstack-python-docs-infra
description: |
Publish the results of the tox-docs job to
/afs/.openstack.org/infra/{{ zuul.project.short_name }}
final: True
pre-run: playbooks/python-docs/pre
run: playbooks/python-docs/run
post-run:
- playbooks/python-docs/post-infra
- playbooks/publish/infra-afs
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
secrets:
- secret: afsdocs_secret
name: afs
- job:
name: publish-service-types-authority
description: |
Publish OpenStack Service Types Authority to
https://service-types.openstack.org
final: True
pre-run: playbooks/python-docs/pre
run: playbooks/service-types/run
post-run: playbooks/publish/service-types
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
secrets:
- site_logs
- job:
name: publish-openstack-python-docs-infra-index
description: |
Publish the results of the tox-docs job to /afs/.openstack.org/infra
final: True
pre-run: playbooks/python-docs/pre
run: playbooks/python-docs/run
post-run:
- playbooks/python-docs/post-infra
- playbooks/publish/infra-index
roles:
- zuul: openstack-infra/zuul-jobs
- zuul: openstack-infra/openstack-zuul-jobs
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/python-tarball/pre
run: playbooks/python-tarball/run
post-run: playbooks/python-branch-tarball/post
- job:
name: publish-irc-meetings
description: |
Publish the IRC meeting calendars to eavesdrop.openstack.org.
final: True
pre-run: playbooks/yaml2ical/pre
run: playbooks/yaml2ical/run
post-run: playbooks/yaml2ical/post
secrets:
- eavesdrop_ssh_key
- job:
name: propose-updates
pre-run: playbooks/proposal/pre
run: playbooks/proposal/propose-updates
secrets:
- secret: proposal_ssh_key
name: ssh_key
- job:
name: propose-update-constraints
parent: propose-updates
run: playbooks/proposal/propose-update-constraints
dependencies:
- release-openstack-python
- semaphore:
name: wheel-mirror
max: 1
- job:
name: build-wheel-mirror
pre-run: playbooks/wheel/pre
run: playbooks/wheel/build
post-run: playbooks/wheel/release
nodeset:
# NOTE: The python2 and python3 suffix are important, they select the
# version of python to build in each job. (we pull the last character of
# the inventory_hostname)
# TODO(mordred): Replace the suffix with host_vars once we have them.
nodes:
- name: wheel-mirror-ubuntu-xenial-python2
label: ubuntu-xenial
- name: wheel-mirror-ubuntu-trusty-python2
label: ubuntu-trusty
- name: wheel-mirror-ubuntu-xenial-python3
label: ubuntu-xenial
- name: wheel-mirror-ubuntu-trusty-python3
label: ubuntu-trusty
# 2.5 hours
timeout: 9000
allowed-projects:
- openstack/requirements
roles:
- zuul: openstack-infra/ansible-puppet
name: puppet
required-projects:
- openstack-infra/system-config
- openstack-infra/puppet-kerberos
- openstack-infra/puppet-openafs
semaphore: wheel-mirror
secrets:
- name: afs
secret: wheel_keytab
- job:
name: release-wheel-mirror
run: playbooks/wheel/release
nodeset:
nodes: []
secrets:
- name: afs
secret: afsadmin_keytab
- job:
name: tag-releases
pre-run: playbooks/release/pre
run: playbooks/release/tag
post-run: playbooks/release/post
final: true
secrets:
- name: lp_creds
secret: lp_creds
- name: ssh_key
secret: release_ssh_key
- project:
name: openstack-infra/project-config
check:
jobs: []
# Contains definitions of secrets
- secret:
name: afsdocs_secret
@ -1001,56 +413,3 @@
Nx5z/lAk0hzM5MWQj0ZtHsqWs/xqodo4i7ucLNWs9UInT+1e2Md9SphQa3COK9FadhmfM
9zPvfZpEiF/0aC5VoZyKKwFUJvgTj+vxnN2P2JTQVQvTlxnIXxFZANV8LcHmBI=
consumer_key: 'System-wide: Ubuntu (review.openstack.org)'
# This project definition is here so that the only zuul config in
# zuul-jobs are the jobs themselves (to make it easy for other users
# to consume).
- project:
name: openstack-infra/zuul-jobs
templates:
- publish-openstack-python-docs-infra
check:
jobs:
- base-integration-centos-7
- base-integration-debian-jessie
- base-integration-fedora-26
- base-integration-ubuntu-trusty
- base-integration-ubuntu-xenial
- base-integration-opensuse423
- tox-linters
- tox-py35-on-zuul
gate:
jobs:
- base-integration-centos-7
- base-integration-debian-jessie
- base-integration-fedora-26
- base-integration-ubuntu-trusty
- base-integration-ubuntu-xenial
- base-integration-opensuse423
- tox-linters
- tox-py35-on-zuul
- project:
name: openstack-dev/sandbox
release:
jobs:
- release-openstack-python
- project:
name: openstack/requirements
periodic:
jobs:
# This is a periodic job to ensure that our wheels are reasonably
# up-to-date. It uses the upper-constraints files from requirements.
- build-wheel-mirror
- release-wheel-mirror:
dependencies:
- build-wheel-mirror
- project:
name: openstack-infra/project-config
check:
jobs:
- zuul-migrate:
files:
- zuul/mapping.yaml