Merge "Deduplicate jobs in dependency cycles"

This commit is contained in:
Zuul
2022-05-26 02:27:03 +00:00
committed by Gerrit Code Review
24 changed files with 1424 additions and 33 deletions

View File

@@ -67,6 +67,7 @@
name: base
parent: null
run: playbooks/run.yaml
deduplicate: false
required-projects:
- common-config
- org/project

View File

@@ -0,0 +1,65 @@
- queue:
name: integrated
allow-circular-dependencies: true
- pipeline:
name: gate
manager: dependent
success-message: Build succeeded (gate).
require:
gerrit:
approval:
- Approved: 1
trigger:
gerrit:
- event: comment-added
approval:
- Approved: 1
success:
gerrit:
Verified: 2
submit: true
failure:
gerrit:
Verified: -2
start:
gerrit:
Verified: 0
precedence: high
- job:
name: base
parent: null
run: playbooks/run.yaml
nodeset:
nodes:
- label: debian
name: controller
- job:
name: common-job
required-projects:
- org/project1
- org/project2
- job:
name: project1-job
- job:
name: project2-job
- project:
name: org/project1
queue: integrated
gate:
jobs:
- common-job
- project1-job
- project:
name: org/project2
queue: integrated
gate:
jobs:
- common-job
- project2-job

View File

@@ -0,0 +1,62 @@
- queue:
name: integrated
allow-circular-dependencies: true
- pipeline:
name: gate
manager: dependent
success-message: Build succeeded (gate).
require:
gerrit:
approval:
- Approved: 1
trigger:
gerrit:
- event: comment-added
approval:
- Approved: 1
success:
gerrit:
Verified: 2
submit: true
failure:
gerrit:
Verified: -2
start:
gerrit:
Verified: 0
precedence: high
- job:
name: base
parent: null
run: playbooks/run.yaml
nodeset:
nodes:
- label: debian
name: controller
- job:
name: common-job
- job:
name: project1-job
- job:
name: project2-job
- project:
name: org/project1
queue: integrated
gate:
jobs:
- common-job
- project1-job
- project:
name: org/project2
queue: integrated
gate:
jobs:
- common-job
- project2-job

View File

@@ -0,0 +1,61 @@
- queue:
name: integrated
allow-circular-dependencies: true
- pipeline:
name: gate
manager: dependent
success-message: Build succeeded (gate).
require:
gerrit:
approval:
- Approved: 1
trigger:
gerrit:
- event: comment-added
approval:
- Approved: 1
success:
gerrit:
Verified: 2
submit: true
failure:
gerrit:
Verified: -2
start:
gerrit:
Verified: 0
precedence: high
- job:
name: base
parent: null
run: playbooks/run.yaml
- job:
name: common-job
required-projects:
- org/project1
- org/project2
- job:
name: project1-job
- job:
name: project2-job
- project:
name: org/project1
queue: integrated
gate:
jobs:
- common-job
- project1-job
- project:
name: org/project2
queue: integrated
gate:
jobs:
- common-job
- project2-job

View File

@@ -0,0 +1,61 @@
- queue:
name: integrated
allow-circular-dependencies: true
- pipeline:
name: gate
manager: dependent
success-message: Build succeeded (gate).
require:
gerrit:
approval:
- Approved: 1
trigger:
gerrit:
- event: comment-added
approval:
- Approved: 1
success:
gerrit:
Verified: 2
submit: true
failure:
gerrit:
Verified: -2
start:
gerrit:
Verified: 0
precedence: high
- job:
name: base
parent: null
run: playbooks/run.yaml
- job:
name: common-job
required-projects:
- org/project1
- org/project2
- job:
name: project1-job
- job:
name: project2-job
- project:
name: org/project1
queue: integrated
gate:
jobs:
- common-job
- project1-job
- project:
name: org/project2
queue: integrated
gate:
jobs:
- common-job
- project2-job

View File

@@ -0,0 +1,66 @@
- queue:
name: integrated
allow-circular-dependencies: true
- pipeline:
name: gate
manager: dependent
success-message: Build succeeded (gate).
require:
gerrit:
approval:
- Approved: 1
trigger:
gerrit:
- event: comment-added
approval:
- Approved: 1
success:
gerrit:
Verified: 2
submit: true
failure:
gerrit:
Verified: -2
start:
gerrit:
Verified: 0
precedence: high
- job:
name: base
parent: null
run: playbooks/run.yaml
nodeset:
nodes:
- label: debian
name: controller
- job:
name: common-job
deduplicate: false
required-projects:
- org/project1
- org/project2
- job:
name: project1-job
- job:
name: project2-job
- project:
name: org/project1
queue: integrated
gate:
jobs:
- common-job
- project1-job
- project:
name: org/project2
queue: integrated
gate:
jobs:
- common-job
- project2-job

View File

@@ -0,0 +1,81 @@
- queue:
name: integrated
allow-circular-dependencies: true
- pipeline:
name: gate
manager: dependent
success-message: Build succeeded (gate).
require:
gerrit:
approval:
- Approved: 1
trigger:
gerrit:
- event: comment-added
approval:
- Approved: 1
success:
gerrit:
Verified: 2
submit: true
failure:
gerrit:
Verified: -2
start:
gerrit:
Verified: 0
precedence: high
- job:
name: base
parent: null
run: playbooks/run.yaml
nodeset:
nodes:
- label: debian
name: controller
- job:
name: parent-job
deduplicate: true
- job:
name: forked-child-job
deduplicate: true
- job:
name: common-child-job
deduplicate: true
- job:
name: project1-job
- job:
name: project2-job
- project:
name: org/project1
queue: integrated
gate:
jobs:
- parent-job
- common-child-job:
dependencies: parent-job
- project1-job:
dependencies: parent-job
- forked-child-job:
dependencies: project1-job
- project:
name: org/project2
queue: integrated
gate:
jobs:
- parent-job
- common-child-job:
dependencies: parent-job
- project2-job:
dependencies: parent-job
- forked-child-job:
dependencies: project2-job

View File

@@ -0,0 +1,65 @@
- queue:
name: integrated
allow-circular-dependencies: true
- pipeline:
name: gate
manager: dependent
success-message: Build succeeded (gate).
require:
gerrit:
approval:
- Approved: 1
trigger:
gerrit:
- event: comment-added
approval:
- Approved: 1
success:
gerrit:
Verified: 2
submit: true
failure:
gerrit:
Verified: -2
start:
gerrit:
Verified: 0
precedence: high
- job:
name: base
parent: null
run: playbooks/run.yaml
nodeset:
nodes:
- label: debian
name: controller
- job:
name: parent-job
deduplicate: true
- job:
name: project1-job
- job:
name: project2-job
- project:
name: org/project1
queue: integrated
gate:
jobs:
- parent-job
- project1-job:
dependencies: parent-job
- project:
name: org/project2
queue: integrated
gate:
jobs:
- parent-job
- project2-job:
dependencies: parent-job

View File

@@ -0,0 +1,66 @@
- queue:
name: integrated
allow-circular-dependencies: true
- pipeline:
name: gate
manager: dependent
success-message: Build succeeded (gate).
require:
gerrit:
approval:
- Approved: 1
trigger:
gerrit:
- event: comment-added
approval:
- Approved: 1
success:
gerrit:
Verified: 2
submit: true
failure:
gerrit:
Verified: -2
start:
gerrit:
Verified: 0
precedence: high
- job:
name: base
parent: null
pre-run: playbooks/pre.yaml
run: playbooks/run.yaml
nodeset:
nodes:
- label: debian
name: controller
- job:
name: common-job
required-projects:
- org/project1
- org/project2
- job:
name: project1-job
- job:
name: project2-job
- project:
name: org/project1
queue: integrated
gate:
jobs:
- common-job
- project1-job
- project:
name: org/project2
queue: integrated
gate:
jobs:
- common-job
- project2-job

View File

@@ -0,0 +1,71 @@
- queue:
name: integrated
allow-circular-dependencies: true
- semaphore:
name: test-semaphore
- pipeline:
name: gate
manager: dependent
success-message: Build succeeded (gate).
require:
gerrit:
approval:
- Approved: 1
trigger:
gerrit:
- event: comment-added
approval:
- Approved: 1
success:
gerrit:
Verified: 2
submit: true
failure:
gerrit:
Verified: -2
start:
gerrit:
Verified: 0
precedence: high
- job:
name: base
parent: null
run: playbooks/run.yaml
nodeset:
nodes:
- label: debian
name: controller
- job:
name: common-job
semaphore:
name: test-semaphore
resources-first: true
required-projects:
- org/project1
- org/project2
- job:
name: project1-job
- job:
name: project2-job
- project:
name: org/project1
queue: integrated
gate:
jobs:
- common-job
- project1-job
- project:
name: org/project2
queue: integrated
gate:
jobs:
- common-job
- project2-job

View File

@@ -0,0 +1,70 @@
- queue:
name: integrated
allow-circular-dependencies: true
- semaphore:
name: test-semaphore
- pipeline:
name: gate
manager: dependent
success-message: Build succeeded (gate).
require:
gerrit:
approval:
- Approved: 1
trigger:
gerrit:
- event: comment-added
approval:
- Approved: 1
success:
gerrit:
Verified: 2
submit: true
failure:
gerrit:
Verified: -2
start:
gerrit:
Verified: 0
precedence: high
- job:
name: base
parent: null
run: playbooks/run.yaml
nodeset:
nodes:
- label: debian
name: controller
- job:
name: common-job
semaphore:
name: test-semaphore
required-projects:
- org/project1
- org/project2
- job:
name: project1-job
- job:
name: project2-job
- project:
name: org/project1
queue: integrated
gate:
jobs:
- common-job
- project1-job
- project:
name: org/project2
queue: integrated
gate:
jobs:
- common-job
- project2-job

View File

@@ -0,0 +1,63 @@
- queue:
name: integrated
allow-circular-dependencies: true
- pipeline:
name: gate
manager: dependent
success-message: Build succeeded (gate).
require:
gerrit:
approval:
- Approved: 1
trigger:
gerrit:
- event: comment-added
approval:
- Approved: 1
success:
gerrit:
Verified: 2
submit: true
failure:
gerrit:
Verified: -2
start:
gerrit:
Verified: 0
precedence: high
- job:
name: base
parent: null
run: playbooks/run.yaml
nodeset:
nodes:
- label: debian
name: controller
- job:
name: common-job
deduplicate: true
- job:
name: project1-job
- job:
name: project2-job
- project:
name: org/project1
queue: integrated
gate:
jobs:
- common-job
- project1-job
- project:
name: org/project2
queue: integrated
gate:
jobs:
- common-job
- project2-job

View File

@@ -45,6 +45,7 @@
name: base
parent: null
run: playbooks/base.yaml
deduplicate: false
nodeset:
nodes:
- label: ubuntu-xenial