project-config/zuul.yaml

165 lines
4.2 KiB
YAML

- 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: comment-added
comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*(recheck|reverify)
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:
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: release
# NOTE(pabelanger): release pipeline needs access to credentials (eg: pypi).
allow-secrets: 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]+)*$
# TODO(pabelanger): Uncomment for production
# failure:
# smtp:
# from: zuul@openstack.org
# to: release-job-failures@lists.openstack.org
# subject: 'Release of {change.project} failed'
- 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
timeout: 1800
nodes:
- name: ubuntu-xenial
label: ubuntu-xenial
- 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
timeout: 1800
nodes:
- name: ubuntu-xenial
label: ubuntu-xenial
- job:
name: publish-openstack-tarball
description: |
Do not use. Old publish job to upload artifacts.
post-run: playbooks/publish/openstack-artifacts
- job:
name: publish-openstack-artifacts
description: |
Publish job to upload artifacts to tarballs.openstack.org
post-run: playbooks/publish/openstack-artifacts
- project:
name: openstack-infra/project-config
check:
jobs: []
- project:
name: openstack-infra/zuul-jobs
check:
jobs:
- openstack-doc-build
- tox-py35-on-zuul