Improve job dependencies using graph instead of tree
This replaces the job dependency tree with a graph so that we can indicate that a job should wait until one or more jobs are complete before starting. Project pipeline job definitions are now a flat list, with each job specifying its dependencies as the job attribute 'dependencies'. Fixes bug #1166937. Signed-off-by: Fredrik Medley <fredrik.medley@autoliv.com> Signed-off-by: Fredrik Medley <fredrik.medley@gmail.com> Signed-off-by: James E. Blair <jeblair@redhat.com> Co-Authored-By: James E. Blair <jeblair@redhat.com> Change-Id: I921940cafeea0738c39deb99357cfd7c91592359
This commit is contained in:
committed by
James E. Blair
parent
e06a03bb45
commit
f8aec83b3b
@@ -1,8 +1,7 @@
|
||||
- pipeline:
|
||||
name: check
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: patchset-created
|
||||
@@ -17,8 +16,7 @@
|
||||
name: gate
|
||||
manager: dependent
|
||||
success-message: Build succeeded (gate).
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: comment-added
|
||||
@@ -39,8 +37,7 @@
|
||||
- pipeline:
|
||||
name: post
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: ref-updated
|
||||
@@ -49,8 +46,7 @@
|
||||
- pipeline:
|
||||
name: experimental
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: patchset-created
|
||||
@@ -107,23 +103,26 @@
|
||||
- job:
|
||||
name: project-testfile
|
||||
files:
|
||||
- '.*-requires'
|
||||
- .*-requires
|
||||
|
||||
- project:
|
||||
name: org/project
|
||||
check:
|
||||
jobs:
|
||||
- project-merge:
|
||||
jobs:
|
||||
- project-test1
|
||||
- project-test2
|
||||
- project-merge
|
||||
- project-test1:
|
||||
dependencies: project-merge
|
||||
- project-test2:
|
||||
dependencies: project-merge
|
||||
gate:
|
||||
jobs:
|
||||
- project-merge:
|
||||
jobs:
|
||||
- project-test1
|
||||
- project-test2
|
||||
- project-testfile
|
||||
- project-merge
|
||||
- project-test1:
|
||||
dependencies: project-merge
|
||||
- project-test2:
|
||||
dependencies: project-merge
|
||||
- project-testfile:
|
||||
dependencies: project-merge
|
||||
post:
|
||||
jobs:
|
||||
- project-post
|
||||
@@ -132,48 +131,58 @@
|
||||
name: org/project1
|
||||
check:
|
||||
jobs:
|
||||
- project-merge:
|
||||
jobs:
|
||||
- project-test1
|
||||
- project-test2
|
||||
- project1-project2-integration
|
||||
- project-merge
|
||||
- project-test1:
|
||||
dependencies: project-merge
|
||||
- project-test2:
|
||||
dependencies: project-merge
|
||||
- project1-project2-integration:
|
||||
dependencies: project-merge
|
||||
gate:
|
||||
queue: integrated
|
||||
jobs:
|
||||
- project-merge:
|
||||
jobs:
|
||||
- project-test1
|
||||
- project-test2
|
||||
- project1-project2-integration
|
||||
- project-merge
|
||||
- project-test1:
|
||||
dependencies: project-merge
|
||||
- project-test2:
|
||||
dependencies: project-merge
|
||||
- project1-project2-integration:
|
||||
dependencies: project-merge
|
||||
|
||||
- project:
|
||||
name: org/project2
|
||||
gate:
|
||||
queue: integrated
|
||||
jobs:
|
||||
- project-merge:
|
||||
jobs:
|
||||
- project-test1
|
||||
- project-test2
|
||||
- project1-project2-integration
|
||||
- project-merge
|
||||
- project-test1:
|
||||
dependencies: project-merge
|
||||
- project-test2:
|
||||
dependencies: project-merge
|
||||
- project1-project2-integration:
|
||||
dependencies: project-merge
|
||||
|
||||
- project:
|
||||
name: org/project3
|
||||
check:
|
||||
jobs:
|
||||
- project-merge:
|
||||
jobs:
|
||||
- project-test1
|
||||
- project-test2
|
||||
- project1-project2-integration
|
||||
- project-merge
|
||||
- project-test1:
|
||||
dependencies: project-merge
|
||||
- project-test2:
|
||||
dependencies: project-merge
|
||||
- project1-project2-integration:
|
||||
dependencies: project-merge
|
||||
gate:
|
||||
queue: integrated
|
||||
jobs:
|
||||
- project-merge:
|
||||
jobs:
|
||||
- project-test1
|
||||
- project-test2
|
||||
- project1-project2-integration
|
||||
- project-merge
|
||||
- project-test1:
|
||||
dependencies: project-merge
|
||||
- project-test2:
|
||||
dependencies: project-merge
|
||||
- project1-project2-integration:
|
||||
dependencies: project-merge
|
||||
post:
|
||||
jobs:
|
||||
- project-post
|
||||
@@ -182,9 +191,9 @@
|
||||
name: org/experimental-project
|
||||
experimental:
|
||||
jobs:
|
||||
- project-merge:
|
||||
jobs:
|
||||
- experimental-project-test
|
||||
- project-merge
|
||||
- experimental-project-test:
|
||||
dependencies: project-merge
|
||||
|
||||
- project:
|
||||
name: org/noop-project
|
||||
@@ -199,16 +208,18 @@
|
||||
name: org/nonvoting-project
|
||||
check:
|
||||
jobs:
|
||||
- nonvoting-project-merge:
|
||||
jobs:
|
||||
- nonvoting-project-test1
|
||||
- nonvoting-project-test2
|
||||
- nonvoting-project-merge
|
||||
- nonvoting-project-test1:
|
||||
dependencies: nonvoting-project-merge
|
||||
- nonvoting-project-test2:
|
||||
dependencies: nonvoting-project-merge
|
||||
gate:
|
||||
jobs:
|
||||
- nonvoting-project-merge:
|
||||
jobs:
|
||||
- nonvoting-project-test1
|
||||
- nonvoting-project-test2
|
||||
- nonvoting-project-merge
|
||||
- nonvoting-project-test1:
|
||||
dependencies: nonvoting-project-merge
|
||||
- nonvoting-project-test2:
|
||||
dependencies: nonvoting-project-merge
|
||||
|
||||
- project:
|
||||
name: org/no-jobs-project
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
- pipeline:
|
||||
name: check
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: patchset-created
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
- pipeline:
|
||||
name: post
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: ref-updated
|
||||
ref: ^(?!refs/).*$
|
||||
ignore-deletes: False
|
||||
ignore-deletes: false
|
||||
|
||||
- job:
|
||||
name: project-post
|
||||
@@ -20,4 +19,3 @@
|
||||
post:
|
||||
jobs:
|
||||
- project-post
|
||||
|
||||
|
||||
@@ -2,8 +2,7 @@
|
||||
name: gate
|
||||
manager: dependent
|
||||
success-message: Build succeeded (gate).
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
failure-message: Build failed. For information on how to proceed, see http://wiki.example.org/Test_Failures
|
||||
footer-message: For CI problems and help debugging, contact ci@example.org
|
||||
trigger:
|
||||
@@ -35,4 +34,3 @@
|
||||
gate:
|
||||
jobs:
|
||||
- project-test1
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
- pipeline:
|
||||
name: periodic
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
timer:
|
||||
- time: '* * * * * */1'
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
- pipeline:
|
||||
name: check
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: patchset-created
|
||||
@@ -13,7 +12,6 @@
|
||||
gerrit:
|
||||
verified: -1
|
||||
|
||||
|
||||
- job:
|
||||
name: project-test-irrelevant-starts-empty
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
- pipeline:
|
||||
name: check
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: patchset-created
|
||||
@@ -13,7 +12,6 @@
|
||||
gerrit:
|
||||
verified: -1
|
||||
|
||||
|
||||
- job:
|
||||
name: project-test-irrelevant-files
|
||||
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
- pipeline:
|
||||
name: check
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: patchset-created
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
- pipeline:
|
||||
name: check
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: patchset-created
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
- pipeline:
|
||||
name: check
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: patchset-created
|
||||
@@ -18,8 +17,7 @@
|
||||
manager: independent
|
||||
# Trigger is required, set it to one that is a noop
|
||||
# during tests that check the timer trigger.
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: ref-updated
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
- pipeline:
|
||||
name: check
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: patchset-created
|
||||
@@ -17,8 +16,7 @@
|
||||
name: gate
|
||||
manager: dependent
|
||||
success-message: Build succeeded (gate).
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: comment-added
|
||||
@@ -60,13 +58,15 @@
|
||||
name: org/delete-project
|
||||
check:
|
||||
jobs:
|
||||
- project-merge:
|
||||
jobs:
|
||||
- project-test1
|
||||
- project-test2
|
||||
- project-merge
|
||||
- project-test1:
|
||||
dependencies: project-merge
|
||||
- project-test2:
|
||||
dependencies: project-merge
|
||||
gate:
|
||||
jobs:
|
||||
- project-merge:
|
||||
jobs:
|
||||
- project-test1
|
||||
- project-test2
|
||||
- project-merge
|
||||
- project-test1:
|
||||
dependencies: project-merge
|
||||
- project-test2:
|
||||
dependencies: project-merge
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
- pipeline:
|
||||
name: check
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: patchset-created
|
||||
@@ -23,8 +22,7 @@
|
||||
name: gate
|
||||
manager: dependent
|
||||
success-message: Build succeeded (gate).
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: comment-added
|
||||
@@ -69,13 +67,15 @@
|
||||
name: org/project
|
||||
check:
|
||||
jobs:
|
||||
- project-merge:
|
||||
jobs:
|
||||
- project-test1
|
||||
- project-test2
|
||||
- project-merge
|
||||
- project-test1:
|
||||
dependencies: project-merge
|
||||
- project-test2:
|
||||
dependencies: project-merge
|
||||
gate:
|
||||
jobs:
|
||||
- project-merge:
|
||||
jobs:
|
||||
- project-test1
|
||||
- project-test2
|
||||
- project-merge
|
||||
- project-test1:
|
||||
dependencies: project-merge
|
||||
- project-test2:
|
||||
dependencies: project-merge
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
- pipeline:
|
||||
name: check
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: patchset-created
|
||||
@@ -34,19 +33,23 @@
|
||||
check:
|
||||
jobs:
|
||||
- merge:
|
||||
jobs:
|
||||
- test1
|
||||
- test2
|
||||
- integration
|
||||
tags:
|
||||
- extratag
|
||||
- test1:
|
||||
dependencies: merge
|
||||
- test2:
|
||||
dependencies: merge
|
||||
- integration:
|
||||
dependencies: merge
|
||||
|
||||
- project:
|
||||
name: org/project2
|
||||
check:
|
||||
jobs:
|
||||
- merge:
|
||||
jobs:
|
||||
- test1
|
||||
- test2
|
||||
- integration
|
||||
- merge
|
||||
- test1:
|
||||
dependencies: merge
|
||||
- test2:
|
||||
dependencies: merge
|
||||
- integration:
|
||||
dependencies: merge
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
- pipeline:
|
||||
name: periodic
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
timer:
|
||||
- time: '* * * * * */1'
|
||||
@@ -10,7 +9,7 @@
|
||||
smtp:
|
||||
to: alternative_me@example.com
|
||||
from: zuul_from@example.com
|
||||
subject: 'Periodic check for {change.project} succeeded'
|
||||
subject: Periodic check for {change.project} succeeded
|
||||
|
||||
- job:
|
||||
name: project-bitrot-stable-old
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
- pipeline:
|
||||
name: check
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
gerrit:
|
||||
- event: patchset-created
|
||||
@@ -16,8 +15,7 @@
|
||||
- pipeline:
|
||||
name: periodic
|
||||
manager: independent
|
||||
source:
|
||||
gerrit
|
||||
source: gerrit
|
||||
trigger:
|
||||
timer:
|
||||
- time: '* * * * * */1'
|
||||
|
||||
Reference in New Issue
Block a user