summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2020-05-07 16:22:58 +0000
committerGerrit Code Review <review@openstack.org>2020-05-07 16:22:58 +0000
commit5996661ce0fb1238de33a2223a6eb916d516af8c (patch)
treecd0ac84a4397b529f01430117561cdd93bc2922d /doc
parent0e85054aac82e97581476a450d07a00660b5f577 (diff)
parent22640baef4d33c80135aace1d11a223278b02e57 (diff)
downloadzuul-5996661ce0fb1238de33a2223a6eb916d516af8c.tar.gz
Merge "Add serial pipeline manager"
Diffstat (limited to 'doc')
-rw-r--r--doc/source/examples/pipelines/gerrit-reference-pipelines.yaml18
-rw-r--r--doc/source/reference/pipeline_def.rst40
2 files changed, 52 insertions, 6 deletions
diff --git a/doc/source/examples/pipelines/gerrit-reference-pipelines.yaml b/doc/source/examples/pipelines/gerrit-reference-pipelines.yaml
index a20647a03..4e0fccaf5 100644
--- a/doc/source/examples/pipelines/gerrit-reference-pipelines.yaml
+++ b/doc/source/examples/pipelines/gerrit-reference-pipelines.yaml
@@ -100,6 +100,24 @@
sqlreporter:
- pipeline:
+ name: deploy
+ description: |
+ This pipeline runs jobs that operate after each change is merged
+ in order to deploy to production.
+ manager: serial
+ precedence: high
+ post-review: True
+ trigger:
+ gerrit:
+ - event: change-merged
+ success:
+ gerrit: {}
+ sqlreporter:
+ failure:
+ gerrit: {}
+ sqlreporter:
+
+- pipeline:
name: release
description: |
When a commit is tagged as a release, this pipeline runs jobs
diff --git a/doc/source/reference/pipeline_def.rst b/doc/source/reference/pipeline_def.rst
index 8b73282e2..940758ba3 100644
--- a/doc/source/reference/pipeline_def.rst
+++ b/doc/source/reference/pipeline_def.rst
@@ -63,7 +63,18 @@ success, the pipeline reports back to Gerrit with ``Verified`` vote of
.. attr:: manager
:required:
- There are three schemes for managing pipelines:
+ There are several schemes for managing pipelines. The following
+ table summarizes their features; each is described in detail
+ below.
+
+ =========== ============ ===== ============= =========
+ Manager Dependencies Merge Shared Queues Window
+ =========== ============ ===== ============= =========
+ Independent No No No Unlimited
+ Dependent Yes Yes Yes Variable
+ Serial No No Yes 1
+ Supercedent No No Project-ref 1
+ =========== ============ ===== ============= =========
.. value:: independent
@@ -107,6 +118,22 @@ success, the pipeline reports back to Gerrit with ``Verified`` vote of
For more detail on the theory and operation of Zuul's
dependent pipeline manager, see: :doc:`/discussion/gating`.
+ .. value:: serial
+
+ This pipeline manager supports shared queues (like depedent
+ pipelines) but only one item in each shared queue is
+ processed at a time.
+
+ This may be useful for post-merge pipelines which perform
+ partial production deployments (i.e., there are jobs with
+ file matchers which only deploy to affected parts of the
+ system). In such a case it is important for every change to
+ be processed, but they must still be processed one at a time
+ in order to ensure that the production system is not
+ inadvertently regressed. Support for shared queues ensures
+ that if multiple projects are involved deployment runs still
+ execute sequentially.
+
.. value:: supercedent
This is like an independent pipeline, in that every item is
@@ -124,11 +151,12 @@ success, the pipeline reports back to Gerrit with ``Verified`` vote of
these cases, build resources can be conserved by avoiding
building intermediate versions.
- .. note:: Since this pipeline filters intermediate buildsets using
- it in combination with file filters on jobs is dangerous.
- In this case jobs of in between buildsets can be
- unexpectedly skipped entirely. If file filters are needed
- the independent pipeline manager should be used.
+ .. note:: Since this pipeline filters intermediate buildsets
+ using it in combination with file filters on jobs
+ is dangerous. In this case jobs of in between
+ buildsets can be unexpectedly skipped entirely. If
+ file filters are needed the ``independent`` or
+ ``serial`` pipeline managers should be used.
.. attr:: post-review
:default: false