ab4651936a
This will ensure that every item in a shared pipeline is run in strict order. Change-Id: I83a010e1549476ae29df67a1e914f6d9e74d9bc6
433 lines
12 KiB
YAML
433 lines
12 KiB
YAML
# 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.
|
|
success-message: Build succeeded (check pipeline).
|
|
failure-message: |
|
|
Build failed (check pipeline). For information on how to proceed, see
|
|
https://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing
|
|
manager: independent
|
|
precedence: low
|
|
require:
|
|
gerrit:
|
|
open: True
|
|
current-patchset: True
|
|
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 reviewers are enqueued
|
|
in order in this pipeline, and if they pass tests, will be
|
|
merged. For documentation on how gating with Zuul works, please see
|
|
https://zuul-ci.org/docs/zuul/user/gating.html
|
|
success-message: Build succeeded (gate pipeline).
|
|
failure-message: |
|
|
Build failed (gate pipeline). For information on how to proceed, see
|
|
https://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing
|
|
manager: dependent
|
|
precedence: normal
|
|
post-review: True
|
|
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. Queue items are identified by the abbreviated hash (git
|
|
log --format=%h) of the merge commit.
|
|
manager: supercedent
|
|
precedence: high
|
|
post-review: True
|
|
trigger:
|
|
gerrit:
|
|
- event: ref-updated
|
|
ref: ^refs/heads/.*$
|
|
success:
|
|
mysql:
|
|
failure:
|
|
mysql:
|
|
|
|
- pipeline:
|
|
name: promote
|
|
description: |
|
|
This pipeline runs jobs that operate after each change is merged
|
|
in order to promote artifacts generated in the gate
|
|
pipeline.
|
|
success-message: Build succeeded (promote pipeline).
|
|
failure-message: |
|
|
Build failed (promote pipeline). For information on how to proceed, see
|
|
https://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing
|
|
manager: supercedent
|
|
precedence: high
|
|
post-review: True
|
|
trigger:
|
|
gerrit:
|
|
- event: change-merged
|
|
success:
|
|
gerrit: {}
|
|
mysql:
|
|
failure:
|
|
gerrit: {}
|
|
mysql:
|
|
|
|
- pipeline:
|
|
name: pre-release
|
|
description: When a commit is tagged with a pre-release tag, this pipeline runs jobs that publish archives and documentation.
|
|
manager: independent
|
|
precedence: high
|
|
post-review: True
|
|
trigger:
|
|
gerrit:
|
|
- event: ref-updated
|
|
ref: ^refs/tags/[0-9]+(\.[0-9]+)*(a|b|rc)[0-9]+$
|
|
success:
|
|
mysql:
|
|
failure:
|
|
smtp:
|
|
from: zuul@openstack.org
|
|
to: release-job-failures@lists.openstack.org
|
|
subject: 'Pre-release of {change.project} for ref {change.ref} failed'
|
|
mysql:
|
|
|
|
- pipeline:
|
|
name: release
|
|
description: When a commit is tagged as a release, this pipeline runs jobs that publish archives and documentation.
|
|
manager: independent
|
|
precedence: high
|
|
post-review: True
|
|
trigger:
|
|
gerrit:
|
|
- event: ref-updated
|
|
ref: ^refs/tags/[0-9]+(\.[0-9]+)*$
|
|
success:
|
|
mysql:
|
|
failure:
|
|
smtp:
|
|
from: zuul@openstack.org
|
|
to: release-job-failures@lists.openstack.org
|
|
subject: 'Release of {change.project} for ref {change.ref} failed'
|
|
mysql:
|
|
|
|
- pipeline:
|
|
name: periodic
|
|
post-review: true
|
|
description: Jobs in this queue are triggered on a daily timer.
|
|
manager: independent
|
|
precedence: low
|
|
trigger:
|
|
timer:
|
|
- time: '0 6 * * *'
|
|
success:
|
|
mysql:
|
|
failure:
|
|
mysql:
|
|
|
|
- pipeline:
|
|
name: deploy
|
|
description: |
|
|
This pipeline runs jobs that operate after each change is merged
|
|
in order to run production deployment playbooks.
|
|
success-message: Build succeeded (deploy pipeline).
|
|
failure-message: |
|
|
Build failed (deploy pipeline). For information on how to proceed, see
|
|
https://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing
|
|
manager: serial
|
|
precedence: high
|
|
post-review: True
|
|
trigger:
|
|
gerrit:
|
|
- event: change-merged
|
|
success:
|
|
gerrit: {}
|
|
mysql:
|
|
failure:
|
|
gerrit: {}
|
|
mysql:
|
|
|
|
- pipeline:
|
|
name: opendev-prod-hourly
|
|
post-review: true
|
|
description: |
|
|
Temporary home for some OpenDev prod jobs that need to be
|
|
triggered frequently. Should not be used by anyone other than
|
|
OpenDev admins.
|
|
manager: independent
|
|
precedence: low
|
|
trigger:
|
|
timer:
|
|
# Run with a 2 minute jitter
|
|
- time: '0 * * * * * 120'
|
|
success:
|
|
mysql:
|
|
failure:
|
|
mysql:
|
|
|
|
- pipeline:
|
|
name: periodic-weekly
|
|
post-review: true
|
|
description: Jobs in this queue are triggered on a weekly timer.
|
|
manager: independent
|
|
precedence: low
|
|
trigger:
|
|
timer:
|
|
# Saturday 8am UTC is a better time to start weekend jobs, as Sunday
|
|
# is a working day in some geographies.
|
|
- time: '0 8 * * 6'
|
|
success:
|
|
mysql:
|
|
failure:
|
|
mysql:
|
|
|
|
- pipeline:
|
|
name: release-approval
|
|
description: |
|
|
Newly-reviewed release requests enter this pipeline to check if the
|
|
current state can represent PTL or release liaison approval.
|
|
manager: independent
|
|
precedence: low
|
|
require:
|
|
gerrit:
|
|
open: True
|
|
current-patchset: True
|
|
trigger:
|
|
gerrit:
|
|
- event: patchset-created
|
|
- event: comment-added
|
|
username: ^(?!^zuul$)\S+$
|
|
success:
|
|
gerrit:
|
|
PTL-Approved: 1
|
|
comment: false
|
|
mysql:
|
|
failure:
|
|
gerrit:
|
|
PTL-Approved: 0
|
|
comment: false
|
|
mysql:
|
|
|
|
- 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/.*$
|
|
success:
|
|
mysql:
|
|
failure:
|
|
mysql:
|
|
smtp:
|
|
from: zuul@openstack.org
|
|
to: release-job-failures@lists.openstack.org
|
|
subject: 'release-post job for {change.project} for ref {change.ref} 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/.*$
|
|
success:
|
|
mysql:
|
|
failure:
|
|
mysql:
|
|
smtp:
|
|
from: zuul@openstack.org
|
|
to: release-job-failures@lists.openstack.org
|
|
subject: 'Tag of {change.project} for ref {change.ref} failed'
|
|
|
|
- pipeline:
|
|
name: periodic-stable
|
|
post-review: true
|
|
description: Periodic checks of the stable branches.
|
|
manager: independent
|
|
precedence: low
|
|
trigger:
|
|
timer:
|
|
- time: '1 6 * * *'
|
|
success:
|
|
mysql:
|
|
failure:
|
|
mysql:
|
|
smtp:
|
|
from: zuul@openstack.org
|
|
to: openstack-stable-maint@lists.openstack.org
|
|
subject: 'Stable check of {change.project} for ref {change.ref} 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: low
|
|
trigger:
|
|
gerrit:
|
|
- event: comment-added
|
|
comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*check experimental\s*$
|
|
success:
|
|
gerrit: {}
|
|
mysql:
|
|
failure:
|
|
gerrit: {}
|
|
mysql:
|
|
|
|
- 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
|
|
trigger: {}
|
|
|
|
- pipeline:
|
|
name: third-party-check
|
|
description: |
|
|
Newly uploaded patchsets to projects that are not hosted on OpenDev
|
|
enter this pipeline to receive an initial +/-1 Verified vote.
|
|
success-message: Build succeeded (third-party-check pipeline).
|
|
# TODO(mordred) We should write a document for non-OpenDev developers
|
|
failure-message: |
|
|
Build failed (third-party-check pipeline) integration testing on
|
|
OpenDev. For information on how to proceed, see
|
|
https://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing
|
|
manager: independent
|
|
precedence: low
|
|
trigger:
|
|
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:
|
|
github:
|
|
status: 'success'
|
|
mysql:
|
|
failure:
|
|
github:
|
|
status: 'failure'
|
|
mysql:
|
|
# Don't report merge-failures to github
|
|
merge-failure:
|
|
mysql:
|
|
|
|
# NOTE(ianw) 2019-12 : since we have very limited ARM64 resources, we
|
|
# have a separate pipeline so ARM64 jobs can start and queue gerrit
|
|
# changes automatically but don't hold up the main check pipeline. Of
|
|
# course, if we have more resources we can remove this and move jobs
|
|
# back into the regular check/gate.
|
|
- pipeline:
|
|
name: check-arm64
|
|
description: Pipeline for ARM64 based jobs.
|
|
success-message: Build succeeded (ARM64 pipeline).
|
|
failure-message: Build failed (ARM64 pipeline).
|
|
manager: independent
|
|
precedence: low
|
|
require:
|
|
gerrit:
|
|
open: True
|
|
current-patchset: True
|
|
trigger:
|
|
gerrit:
|
|
- event: patchset-created
|
|
- event: change-restored
|
|
- event: comment-added
|
|
comment: (?i)^(Patch Set [0-9]+:)?( [\w\\+-]*)*(\n\n)?\s*recheck
|
|
success:
|
|
gerrit: {}
|
|
mysql:
|
|
failure:
|
|
gerrit: {}
|
|
mysql:
|