Skip to content

Commit 3ce8591

Browse files
author
Hector Vido
committed
Respecting always_run from config file
1 parent 6aca3b1 commit 3ce8591

File tree

5 files changed

+22
-24
lines changed

5 files changed

+22
-24
lines changed

pkg/jobconfig/files.go

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ func WriteToDir(jobDir, org, repo string, jobConfig *prowconfig.JobConfig, gener
365365
return nil
366366
}
367367

368-
// Given two JobConfig, merge jobs from the `source` one to to `destination`
368+
// Given two JobConfig, merge jobs from the `source` one to `destination`
369369
// one. Jobs are matched by name. All jobs from `source` will be present in
370370
// `destination` - if there were jobs with the same name in `destination`, they
371371
// will be updated. All jobs in `destination` that are not overwritten this
@@ -471,9 +471,6 @@ func mergeJobConfig(destination, source *prowconfig.JobConfig, allJobs sets.Set[
471471
func mergePresubmits(old, new *prowconfig.Presubmit) prowconfig.Presubmit {
472472
merged := *new
473473

474-
merged.AlwaysRun = old.AlwaysRun
475-
merged.RunIfChanged = old.RunIfChanged
476-
merged.SkipIfOnlyChanged = old.SkipIfOnlyChanged
477474
merged.MaxConcurrency = old.MaxConcurrency
478475
merged.SkipReport = old.SkipReport
479476
merged.Cluster = func() string {
@@ -485,19 +482,14 @@ func mergePresubmits(old, new *prowconfig.Presubmit) prowconfig.Presubmit {
485482
return ""
486483
}()
487484

488-
if new.RunIfChanged != "" || new.SkipIfOnlyChanged != "" || new.Annotations["pipeline_run_if_changed"] != "" {
489-
merged.RunIfChanged = new.RunIfChanged
490-
merged.SkipIfOnlyChanged = new.SkipIfOnlyChanged
491-
merged.AlwaysRun = new.AlwaysRun
492-
}
493-
494485
// TODO(muller): Special case images jobs for now. Some repos are marking
495486
// images jobs as optional for which we do not have syntax in ci-operator (should we?).
496487
// Tolerate manual changes for these jobs for now
497488
if strings.HasSuffix(merged.Name, "-images") {
498-
merged.Optional = old.Optional
499-
if new.Optional {
500-
merged.Optional = new.Optional
489+
if old.RunIfChanged != "" || old.SkipIfOnlyChanged != "" {
490+
merged.RunIfChanged = old.RunIfChanged
491+
merged.SkipIfOnlyChanged = old.SkipIfOnlyChanged
492+
merged.AlwaysRun = false
501493
}
502494
}
503495

pkg/prowgen/prowgen.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,18 @@ func GenerateJobs(configSpec *cioperatorapi.ReleaseBuildConfiguration, info *Pro
131131
jobBaseGen := newJobBaseBuilder().TestName(imagesTestName)
132132
injectArchitectureLabels(jobBaseGen, configSpec.Images)
133133

134+
optional := false
135+
for _, image := range configSpec.Images {
136+
if image.Optional {
137+
optional = true
138+
break
139+
}
140+
}
141+
134142
jobBaseGen.PodSpec.Add(Targets(presubmitTargets...))
135-
presubmits[orgrepo] = append(presubmits[orgrepo], *generatePresubmitForTest(jobBaseGen, imagesTestName, info))
143+
presubmits[orgrepo] = append(presubmits[orgrepo], *generatePresubmitForTest(jobBaseGen, imagesTestName, info, func(options *generatePresubmitOptions) {
144+
options.optional = optional
145+
}))
136146

137147
if configSpec.PromotionConfiguration != nil {
138148
jobBaseGen = newJobBaseBuilder().TestName(imagesTestName)
@@ -246,7 +256,7 @@ type generatePresubmitOptions struct {
246256
}
247257

248258
func (opts *generatePresubmitOptions) shouldAlwaysRun() bool {
249-
return opts.runIfChanged == "" && opts.skipIfOnlyChanged == "" && !opts.defaultDisable && opts.pipelineRunIfChanged == ""
259+
return opts.runIfChanged == "" && opts.skipIfOnlyChanged == "" && !opts.defaultDisable && opts.pipelineRunIfChanged == "" && !opts.optional
250260
}
251261

252262
type generatePresubmitOption func(options *generatePresubmitOptions)

pkg/prowgen/testdata/zz_fixture_TestGeneratePresubmitForTest_optional_presubmit.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
agent: kubernetes
2-
always_run: true
2+
always_run: false
33
branches:
44
- ^branch$
55
- ^branch-

test/integration/ci-operator-prowgen/input/jobs/super/duper/super-duper-master-presubmits.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
presubmits:
22
super/duper:
33
- agent: kubernetes
4-
always_run: false
4+
always_run: true
55
branches:
66
- ^master$
77
- ^master-
88
context: ci/prow/images
99
decorate: true
1010
max_concurrency: 100
1111
name: pull-ci-super-duper-master-images
12-
optional: true
1312
rerun_command: /test images
14-
run_if_changed: changes
1513
skip_cloning: true
1614
skip_report: true
1715
spec:

test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-presubmits.yaml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ presubmits:
5555
secretName: result-aggregator
5656
trigger: (?m)^/test( | .* )ci-index,?($|\s.*)
5757
- agent: kubernetes
58-
always_run: true
58+
always_run: false
5959
branches:
6060
- ^master$
6161
- ^master-
@@ -180,7 +180,7 @@ presubmits:
180180
secretName: result-aggregator
181181
trigger: (?m)^/test( | .* )e2e,?($|\s.*)
182182
- agent: kubernetes
183-
always_run: false
183+
always_run: true
184184
branches:
185185
- ^master$
186186
- ^master-
@@ -193,9 +193,7 @@ presubmits:
193193
pj-rehearse.openshift.io/can-be-rehearsed: "true"
194194
max_concurrency: 100
195195
name: pull-ci-super-duper-master-images
196-
optional: true
197196
rerun_command: /test images
198-
run_if_changed: changes
199197
skip_report: true
200198
spec:
201199
containers:
@@ -303,7 +301,7 @@ presubmits:
303301
secretName: result-aggregator
304302
trigger: (?m)^/test( | .* )lint,?($|\s.*)
305303
- agent: kubernetes
306-
always_run: true
304+
always_run: false
307305
branches:
308306
- ^master$
309307
- ^master-

0 commit comments

Comments
 (0)