Skip to content

Conversation

@petr-muller
Copy link
Member

@petr-muller petr-muller commented Jan 6, 2026

Find all release gating job configs using the same method used for determining which jobs will be consumed by TRT tooling. Code partially adapted from #4854.

When run over base state https://github.com/petr-muller/release/tree/dptp-4435-mock-prebranch-gating-jobs-final-base, it results in petr-muller/release@e8d717f over what the current tool creates in petr-muller/release@c8af926


branchcuts: bump versions in envvar values

Code adapted from #4854 by @Prucek

Results in the following changes over the previous commit: petr-muller/release@2822640


branchcuts: bump versions in base_images tags
Some configs import base_images from specified version-like tags like ci/tests-private:4.22. When tags are bare versions we can bumpt them too. We cannot bump tags where a version is a substring because cases like rhel-9-golang-1.24-openshift-4.22 cannot be handled by simply bumping the OCP version substring.

Results in the following changes over the previous commit: petr-muller/release@45a900a


branchcuts: ignore release gating jobs in openshift-priv

Results in the following changes over the previous commit: petr-muller/release@9c24588


branchcuts: ignore release gating jobs in non-variant configs
Nonvariant configs contain configuration that applies on the branch
directly and typically contains presubmits and postsubmits, not release
gating periodics.

It seems the only exception to this rule is this file (which is currently
missed by all other tooling):

ci-operator/config/shiftstack/ci/shiftstack-ci-release-4.22.yaml

Non-variant release-4.22 would typically be maintained by automation,
not manually, and TRT-facing jobs would be defined in a __periodics
file or something similar. If we can rename the config (which may be
non-trivial because job names carry meaning) the config may get picked
up by this tool again.

Results in the following changes over the previous commit: petr-muller/release@faca085


refactor: move ProvidesSignalForVersion to ocplifecycle

The method is no longer prowgen-internal, it is now a more general
ci-operator interrogation method that is used both for marking jobs for
TRT consumption (through job-release label) and on the other side for
recognizing which jobs would be marked as such, so they can be handled
by tooling e.g. involved in branchcuts.

@openshift-ci-robot
Copy link
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: automatic mode

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 6, 2026
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 6, 2026

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Jan 6, 2026

@petr-muller: This pull request references DPTP-4435 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Builds on #4881 and attempts to find all release gating job configs using the same method used for determining which jobs will be consumed by TRT tooling. Actual bump code taken from #4854 by @Prucek. Not polished yet, will polish after testing.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jan 6, 2026
@coderabbitai
Copy link

coderabbitai bot commented Jan 6, 2026

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

Pluggable file-finding strategies (regexp and signal) were introduced for generated release-gating job discovery; constructors and CLI now accept a fileFinder parameter; bump logic expanded (env vars, base images, metadata); tests extended; and a signal-providing helper was exported.

Changes

Cohort / File(s) Change Summary
Command entry point
cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go
Removed releaseJobsPath; added file-finder CLI flag and fileFinder option field; pass fileFinder into NewGeneratedReleaseGatingJobsBumper.
Core bumper logic
pkg/branchcuts/bumper/gen-release-jobs-bumper.go
Added pluggable file finders (FileFinderRegexp, FileFinderSignal) and getFilesFn; implemented makeGetFilesByRegexp and makeGetFilesProvidingSignal; constructor now accepts fileFinder; replaced direct fs-walk with chosen GetFiles; added BumpContent, changed BumpFilename signature, expanded bumping of env vars, base images, tests, and zz_generated_metadata; added error aggregation.
Bumper tests
pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go
Updated NewGeneratedReleaseGatingJobsBumper call sites to include fileFinder; added tests for bumpStepEnvVars, bumpTestStepEnvVars, and bumpBaseImages; adjusted expectations.
Prow/job helper
pkg/prowgen/jobbase.go
Removed local providesSignalForVersion; now calls ocplifecycle.ProvidesSignalForVersion.
OCPLifecycle API
pkg/api/ocplifecycle/ocplifecycle.go
Added exported ProvidesSignalForVersion(configSpec *cioperatorapi.ReleaseBuildConfiguration) string to return candidate version signal when present.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

✨ Finishing touches
  • 📝 Generate docstrings

🧹 Recent nitpick comments
cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go (1)

34-34: Consider adding validation for the file-finder flag.

The flag accepts any string, but only regexp and signal are valid values. While the bumper constructor will return an error for invalid values, adding explicit validation in gatherOptions() would provide earlier, clearer feedback.

♻️ Optional: Add validation
+	if o.fileFinder != bumper.FileFinderRegexp && o.fileFinder != bumper.FileFinderSignal {
+		errs = append(errs, fmt.Errorf("invalid file-finder: %s (must be 'regexp' or 'signal')", o.fileFinder))
+	}

📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between c05d952 and 0b8d4f8.

📒 Files selected for processing (5)
  • cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go
  • pkg/api/ocplifecycle/ocplifecycle.go
  • pkg/branchcuts/bumper/gen-release-jobs-bumper.go
  • pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go
  • pkg/prowgen/jobbase.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkg/api/ocplifecycle/ocplifecycle.go
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • pkg/prowgen/jobbase.go
  • cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go
  • pkg/branchcuts/bumper/gen-release-jobs-bumper.go
  • pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go
🧬 Code graph analysis (3)
pkg/prowgen/jobbase.go (1)
pkg/api/ocplifecycle/ocplifecycle.go (1)
  • ProvidesSignalForVersion (262-267)
cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go (1)
pkg/branchcuts/bumper/gen-release-jobs-bumper.go (1)
  • NewGeneratedReleaseGatingJobsBumper (80-104)
pkg/branchcuts/bumper/gen-release-jobs-bumper.go (2)
pkg/api/ocplifecycle/ocplifecycle.go (3)
  • MajorMinor (199-202)
  • ProvidesSignalForVersion (262-267)
  • ParseMajorMinor (237-252)
pkg/config/load.go (2)
  • OperateOnCIOperatorConfigDir (327-329)
  • DataWithInfo (415-418)
🔇 Additional comments (17)
pkg/branchcuts/bumper/gen-release-jobs-bumper.go (9)

14-18: LGTM!

Clean import organization with the new errors package from k8s.io/apimachinery/pkg/util/errors for error aggregation.


21-36: LGTM!

Good abstraction introducing getFilesFn type and file finder strategy constants. This enables clean pluggable file discovery.


54-76: LGTM!

Well-structured signal-based file finder with clear filtering logic. The comments explain the rationale for ignoring openshift-priv and non-variant configs.


80-104: LGTM!

Clean implementation of the strategy pattern for file finding. The switch handles both strategies and properly returns an error for unknown values.


125-141: LGTM!

Good addition of Branch bumping alongside Variant. The ignored filename parameter aligns with the updated API design.


143-183: LGTM!

Comprehensive content bumping covering base images, releases, tests, metadata, and intervals. Good error propagation throughout.


185-209: LGTM!

Error aggregation is now properly returned. The logic to only bump plain version tags (avoiding complex tags like rhel-9-golang-1.24-openshift-4.22) is well-reasoned and documented.


281-301: LGTM!

Clean implementation of env var bumping with proper version detection and error aggregation.


317-339: LGTM!

Good defensive handling with the nil check for env.Default and version parsing guard. Both prevent panics and incorrect bumps.

pkg/prowgen/jobbase.go (2)

11-11: LGTM!

Import added for the relocated ProvidesSignalForVersion function.


83-85: LGTM!

Clean refactor using the now-public ocplifecycle.ProvidesSignalForVersion function. This enables reuse in the bumper package as discussed in previous reviews.

pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go (4)

44-44: LGTM!

Constructor call updated to include the new FileFinderSignal parameter.


205-284: LGTM!

Thorough test coverage for bumpStepEnvVars including OCP_VERSION handling, major version matching, non-version values, multiple vars, and nil input.


286-406: LGTM!

Comprehensive tests for bumpTestStepEnvVars covering all scenarios including the nil Default field case (lines 374-393), which was previously flagged as missing coverage.


408-501: LGTM!

Good test coverage for bumpBaseImages validating plain version tag bumping, non-version tag preservation, substring version handling, and nil input.

cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go (2)

23-24: LGTM!

New fileFinder field added to options struct.


71-79: LGTM!

Clean wiring of the fileFinder option to the bumper constructor.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.5.0)

Command failed


Comment @coderabbitai help to get the list of available commands and usage tips.

@petr-muller petr-muller force-pushed the gjrg-for-payload-jobs branch from 5d2d13f to be22a2b Compare January 6, 2026 15:57
petr-muller added a commit to petr-muller/release that referenced this pull request Jan 6, 2026
Made with https://github.com/openshift/ci-tools/pull/4885

```console
$ go run ./cmd/branchingconfigmanagers/generated-release-gating-jobs/... --current-release=4.22 \
                  --release-repo=$HOME/Projects/RH/github.com/openshift/release/ \
                  --file-finder=signal \
                  --interval=168
DEBU[0000] using options &{curOCPVersion:4.22 releaseRepoDir:/home/afri/Projects/RH/github.com/openshift/release/ logLevel:5 newIntervalValue:168 fileFinder:signal}
DEBU[0000] using options &{curOCPVersion:4.22 releaseRepoDir:/home/afri/Projects/RH/github.com/openshift/release/ logLevel:5 newIntervalValue:168 fileFinder:signal}
DEBU[0000] files: [/home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/kubevirt/hyperconverged-cluster-operator/kubevirt-hyperconverged-cluster-operator-main.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/aws-karpenter-provider-aws/openshift-aws-karpenter-provider-aws-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/cluster-authentication-operator/openshift-cluster-authentication-operator-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/cluster-control-plane-machine-set-operator/openshift-cluster-control-plane-machine-set-operator-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/cluster-storage-operator/openshift-cluster-storage-operator-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/csi-operator/openshift-csi-operator-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/gcp-filestore-csi-driver-operator/openshift-gcp-filestore-csi-driver-operator-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/gcp-pd-csi-driver-operator/openshift-gcp-pd-csi-driver-operator-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/image-registry/openshift-image-registry-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/insights-operator/openshift-insights-operator-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/microshift/openshift-microshift-main.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/microshift/openshift-microshift-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/microshift/openshift-microshift-release-4.22.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/multiarch/openshift-multiarch-master__nightly-4.22-upgrade-from-stable-4.21.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/multiarch/openshift-multiarch-master__nightly-4.22-upgrade-from-nightly-4.21.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/multiarch/openshift-multiarch-master__nightly-4.22.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-main.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__arm64-nightly.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/operator-framework-olm/openshift-operator-framework-olm-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__multi-nightly.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/operator-framework-operator-controller/openshift-operator-framework-operator-controller-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/osde2e/openshift-osde2e-main__nightly-4.22.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/ovn-kubernetes/openshift-ovn-kubernetes-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__amd64-nightly.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__ci-4.22-upgrade-from-stable-4.21-from-stable-4.20.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__ci-4.22-upgrade-from-stable-4.21.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__cnv-nightly-4.22.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__ci-4.22.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__nightly-4.22-upgrade-from-stable-4.20.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__nightly-4.22-upgrade-from-stable-4.21.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__okd-scos-4.22-upgrade-from-okd-scos-4.21.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__okd-scos-4.22.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__nightly-4.22.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__aws-4.22-nightly-x86-loaded-upgrade-from-4.21.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__aws-4.22-nightly-x86.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__gcp-4.22-nightly-x86.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-netobserv-perf-tests__netobserv-aws-4.22-nightly-x86.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/commatrix/openshift-kni-commatrix-main.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/commatrix/openshift-kni-commatrix-release-4.22.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__nightly-4.22.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/numaresources-operator/openshift-kni-numaresources-operator-main.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/cluster-authentication-operator/openshift-priv-cluster-authentication-operator-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/image-registry/openshift-priv-image-registry-release-4.22__periodics.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/microshift/openshift-priv-microshift-release-4.22.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/microshift/openshift-priv-microshift-main.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/openshift-tests-private/openshift-priv-openshift-tests-private-release-4.22.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/openshift-tests-private/openshift-priv-openshift-tests-private-main.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/shiftstack/ci/shiftstack-ci-release-4.22__upgrade-from-stable-4.21.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/shiftstack/ci/shiftstack-ci-release-4.22__techpreview.yaml /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/shiftstack/ci/shiftstack-ci-release-4.22.yaml]
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/multiarch/openshift-multiarch-master__nightly-4.22-upgrade-from-stable-4.21.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.22__periodics.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/gcp-filestore-csi-driver-operator/openshift-gcp-filestore-csi-driver-operator-release-4.22__periodics.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/kubevirt/hyperconverged-cluster-operator/kubevirt-hyperconverged-cluster-operator-main.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/gcp-pd-csi-driver-operator/openshift-gcp-pd-csi-driver-operator-release-4.22__periodics.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/microshift/openshift-microshift-main.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/csi-operator/openshift-csi-operator-release-4.22__periodics.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/aws-karpenter-provider-aws/openshift-aws-karpenter-provider-aws-release-4.22__periodics.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/microshift/openshift-microshift-release-4.22__periodics.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/image-registry/openshift-image-registry-release-4.22__periodics.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/cluster-authentication-operator/openshift-cluster-authentication-operator-release-4.22__periodics.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/microshift/openshift-microshift-release-4.22.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/cluster-control-plane-machine-set-operator/openshift-cluster-control-plane-machine-set-operator-release-4.22__periodics.yaml
INFO[0000] bumping filename openshift-gcp-pd-csi-driver-operator-release-4.22__periodics.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-gcp-pd-csi-driver-operator-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/gcp-pd-csi-driver-operator
INFO[0000] bumping obj
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/cluster-storage-operator/openshift-cluster-storage-operator-release-4.22__periodics.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/insights-operator/openshift-insights-operator-release-4.22__periodics.yaml
INFO[0000] marshalling obj openshift-gcp-pd-csi-driver-operator-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/gcp-pd-csi-driver-operator
INFO[0000] bumping filename openshift-aws-karpenter-provider-aws-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-aws-karpenter-provider-aws-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/aws-karpenter-provider-aws
INFO[0000] bumping obj
INFO[0000] marshalling obj openshift-aws-karpenter-provider-aws-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/aws-karpenter-provider-aws
INFO[0000] bumping filename openshift-multiarch-master__nightly-4.22-upgrade-from-stable-4.21.yaml
INFO[0000] bumped filename openshift-multiarch-master__nightly-4.23-upgrade-from-stable-4.22.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/multiarch
INFO[0000] bumping obj
INFO[0000] bumping filename openshift-gcp-filestore-csi-driver-operator-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-gcp-filestore-csi-driver-operator-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/gcp-filestore-csi-driver-operator
INFO[0000] bumping obj
INFO[0000] marshalling obj openshift-multiarch-master__nightly-4.23-upgrade-from-stable-4.22.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/multiarch
INFO[0000] marshalling obj openshift-gcp-filestore-csi-driver-operator-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/gcp-filestore-csi-driver-operator
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/multiarch/openshift-multiarch-master__nightly-4.22-upgrade-from-nightly-4.21.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/multiarch/openshift-multiarch-master__nightly-4.22.yaml
INFO[0000] bumping filename openshift-csi-operator-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-csi-operator-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/csi-operator
INFO[0000] bumping obj
INFO[0000] bumping filename openshift-machine-config-operator-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-machine-config-operator-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/machine-config-operator
INFO[0000] bumping obj
INFO[0000] marshalling obj openshift-csi-operator-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/csi-operator
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-main.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22.yaml
INFO[0000] marshalling obj openshift-machine-config-operator-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/machine-config-operator
INFO[0000] bumping filename openshift-image-registry-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-image-registry-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/image-registry
INFO[0000] bumping obj
INFO[0000] marshalling obj openshift-image-registry-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/image-registry
INFO[0000] bumping filename openshift-cluster-storage-operator-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-cluster-storage-operator-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/cluster-storage-operator
INFO[0000] bumping obj
INFO[0000] bumping filename openshift-multiarch-master__nightly-4.22-upgrade-from-nightly-4.21.yaml
INFO[0000] bumped filename openshift-multiarch-master__nightly-4.23-upgrade-from-nightly-4.22.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/multiarch
INFO[0000] bumping obj
INFO[0000] bumping filename openshift-microshift-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-microshift-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/microshift
INFO[0000] bumping obj
INFO[0000] bumping filename openshift-microshift-main.yaml
INFO[0000] bumping filename openshift-microshift-release-4.22.yaml
INFO[0000] bumped filename openshift-microshift-main.yaml
INFO[0000] bumped filename openshift-microshift-release-4.23.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/microshift
WARN[0000] file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/microshift/openshift-microshift-release-4.23.yaml already exists, skipping
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__arm64-nightly.yaml
INFO[0000] marshalling obj openshift-microshift-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/microshift
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/operator-framework-olm/openshift-operator-framework-olm-release-4.22__periodics.yaml
INFO[0000] marshalling obj openshift-cluster-storage-operator-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/cluster-storage-operator
INFO[0000] marshalling obj openshift-multiarch-master__nightly-4.23-upgrade-from-nightly-4.22.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/multiarch
INFO[0000] bumping filename openshift-openshift-tests-private-main.yaml
INFO[0000] bumping filename openshift-cluster-authentication-operator-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-cluster-authentication-operator-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/cluster-authentication-operator
INFO[0000] bumping obj
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/microshift
WARN[0000] file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/microshift/openshift-microshift-main.yaml already exists, skipping
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__multi-nightly.yaml
INFO[0000] marshalling obj openshift-cluster-authentication-operator-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/cluster-authentication-operator
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/operator-framework-operator-controller/openshift-operator-framework-operator-controller-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-openshift-tests-private-main.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private
WARN[0000] file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-main.yaml already exists, skipping
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/osde2e/openshift-osde2e-main__nightly-4.22.yaml
INFO[0000] bumping filename openshift-hypershift-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-hypershift-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/hypershift
INFO[0000] bumping obj
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/ovn-kubernetes/openshift-ovn-kubernetes-release-4.22__periodics.yaml
INFO[0000] bumping filename openshift-cluster-control-plane-machine-set-operator-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-cluster-control-plane-machine-set-operator-release-4.23__periodics.yaml
INFO[0000] marshalling obj openshift-hypershift-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/hypershift
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/cluster-control-plane-machine-set-operator
INFO[0000] bumping obj
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.22__amd64-nightly.yaml
INFO[0000] bumping filename openshift-osde2e-main__nightly-4.22.yaml
INFO[0000] bumped filename openshift-osde2e-main__nightly-4.23.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/osde2e
INFO[0000] bumping obj
INFO[0000] marshalling obj openshift-cluster-control-plane-machine-set-operator-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/cluster-control-plane-machine-set-operator
INFO[0000] marshalling obj openshift-osde2e-main__nightly-4.23.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/osde2e
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__ci-4.22-upgrade-from-stable-4.21-from-stable-4.20.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__ci-4.22-upgrade-from-stable-4.21.yaml
INFO[0000] bumping filename openshift-release-master__ci-4.22-upgrade-from-stable-4.21-from-stable-4.20.yaml
INFO[0000] bumped filename openshift-release-master__ci-4.23-upgrade-from-stable-4.22-from-stable-4.21.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] bumping obj
INFO[0000] marshalling obj openshift-release-master__ci-4.23-upgrade-from-stable-4.22-from-stable-4.21.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__cnv-nightly-4.22.yaml
INFO[0000] bumping filename openshift-ovn-kubernetes-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-ovn-kubernetes-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/ovn-kubernetes
INFO[0000] bumping obj
INFO[0000] marshalling obj openshift-ovn-kubernetes-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/ovn-kubernetes
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__ci-4.22.yaml
INFO[0000] bumping filename openshift-release-master__ci-4.22-upgrade-from-stable-4.21.yaml
INFO[0000] bumped filename openshift-release-master__ci-4.23-upgrade-from-stable-4.22.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] bumping obj
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__nightly-4.22-upgrade-from-stable-4.20.yaml
INFO[0000] marshalling obj openshift-release-master__ci-4.23-upgrade-from-stable-4.22.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] bumping filename openshift-release-master__cnv-nightly-4.22.yaml
INFO[0000] bumped filename openshift-release-master__cnv-nightly-4.23.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] bumping obj
INFO[0000] bumping filename openshift-release-master__nightly-4.22-upgrade-from-stable-4.20.yaml
INFO[0000] bumped filename openshift-release-master__nightly-4.23-upgrade-from-stable-4.21.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] bumping obj
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__nightly-4.22-upgrade-from-stable-4.21.yaml
INFO[0000] marshalling obj openshift-release-master__nightly-4.23-upgrade-from-stable-4.21.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] marshalling obj openshift-release-master__cnv-nightly-4.23.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] bumping filename openshift-openshift-tests-private-release-4.22.yaml
INFO[0000] bumped filename openshift-openshift-tests-private-release-4.23.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private
WARN[0000] file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.23.yaml already exists, skipping
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__nightly-4.22.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__okd-scos-4.22.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release/openshift-release-master__okd-scos-4.22-upgrade-from-okd-scos-4.21.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__aws-4.22-nightly-x86-loaded-upgrade-from-4.21.yaml
INFO[0000] bumping filename openshift-openshift-tests-private-release-4.22__arm64-nightly.yaml
INFO[0000] bumped filename openshift-openshift-tests-private-release-4.23__arm64-nightly.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private
INFO[0000] bumping obj
INFO[0000] bumping filename openshift-release-master__nightly-4.22-upgrade-from-stable-4.21.yaml
INFO[0000] bumped filename openshift-release-master__nightly-4.23-upgrade-from-stable-4.22.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] bumping obj
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__aws-4.22-nightly-x86.yaml
INFO[0000] marshalling obj openshift-release-master__nightly-4.23-upgrade-from-stable-4.22.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] marshalling obj openshift-openshift-tests-private-release-4.23__arm64-nightly.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private
INFO[0000] bumping filename openshift-multiarch-master__nightly-4.22.yaml
INFO[0000] bumping filename openshift-release-master__okd-scos-4.22.yaml
INFO[0000] bumped filename openshift-multiarch-master__nightly-4.23.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/multiarch
INFO[0000] bumping obj
INFO[0000] bumping filename openshift-release-master__ci-4.22.yaml
INFO[0000] bumped filename openshift-release-master__ci-4.23.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] bumping obj
INFO[0000] bumped filename openshift-release-master__okd-scos-4.23.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__gcp-4.22-nightly-x86.yaml
INFO[0000] bumping obj
INFO[0000] bumping filename openshift-release-master__okd-scos-4.22-upgrade-from-okd-scos-4.21.yaml
INFO[0000] bumped filename openshift-release-master__okd-scos-4.23-upgrade-from-okd-scos-4.22.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] bumping obj
INFO[0000] marshalling obj openshift-release-master__okd-scos-4.23.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] marshalling obj openshift-multiarch-master__nightly-4.23.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/multiarch
INFO[0000] marshalling obj openshift-release-master__okd-scos-4.23-upgrade-from-okd-scos-4.22.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] bumping filename openshift-eng-ocp-qe-perfscale-ci-main__aws-4.22-nightly-x86-loaded-upgrade-from-4.21.yaml
INFO[0000] marshalling obj openshift-release-master__ci-4.23.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] bumped filename openshift-eng-ocp-qe-perfscale-ci-main__aws-4.23-nightly-x86-loaded-upgrade-from-4.22.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci
INFO[0000] bumping obj
INFO[0000] marshalling obj openshift-eng-ocp-qe-perfscale-ci-main__aws-4.23-nightly-x86-loaded-upgrade-from-4.22.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci
INFO[0000] bumping filename openshift-operator-framework-operator-controller-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-operator-framework-operator-controller-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/operator-framework-operator-controller
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-netobserv-perf-tests__netobserv-aws-4.22-nightly-x86.yaml
INFO[0000] bumping obj
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/commatrix/openshift-kni-commatrix-main.yaml
INFO[0000] bumping filename kubevirt-hyperconverged-cluster-operator-main.yaml
INFO[0000] bumped filename kubevirt-hyperconverged-cluster-operator-main.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/kubevirt/hyperconverged-cluster-operator
WARN[0000] file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/kubevirt/hyperconverged-cluster-operator/kubevirt-hyperconverged-cluster-operator-main.yaml already exists, skipping
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/commatrix/openshift-kni-commatrix-release-4.22.yaml
INFO[0000] marshalling obj openshift-operator-framework-operator-controller-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/operator-framework-operator-controller
INFO[0000] bumping filename openshift-insights-operator-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-insights-operator-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/insights-operator
INFO[0000] bumping obj
INFO[0000] bumping filename openshift-kni-commatrix-main.yaml
INFO[0000] bumped filename openshift-kni-commatrix-main.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/commatrix
WARN[0000] file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/commatrix/openshift-kni-commatrix-main.yaml already exists, skipping
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__nightly-4.22.yaml
INFO[0000] marshalling obj openshift-insights-operator-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/insights-operator
INFO[0000] bumping filename openshift-kni-commatrix-release-4.22.yaml
INFO[0000] bumped filename openshift-kni-commatrix-release-4.23.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/commatrix
WARN[0000] file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/commatrix/openshift-kni-commatrix-release-4.23.yaml already exists, skipping
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/numaresources-operator/openshift-kni-numaresources-operator-main.yaml
INFO[0000] bumping filename openshift-operator-framework-olm-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-operator-framework-olm-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/operator-framework-olm
INFO[0000] bumping obj
INFO[0000] bumping filename openshift-eng-ocp-qe-perfscale-ci-main__aws-4.22-nightly-x86.yaml
INFO[0000] bumped filename openshift-eng-ocp-qe-perfscale-ci-main__aws-4.23-nightly-x86.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci
INFO[0000] bumping obj
INFO[0000] marshalling obj openshift-eng-ocp-qe-perfscale-ci-main__aws-4.23-nightly-x86.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci
INFO[0000] marshalling obj openshift-operator-framework-olm-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/operator-framework-olm
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/cluster-authentication-operator/openshift-priv-cluster-authentication-operator-release-4.22__periodics.yaml
INFO[0000] bumping filename openshift-eng-ocp-qe-perfscale-ci-netobserv-perf-tests__netobserv-aws-4.22-nightly-x86.yaml
INFO[0000] bumped filename openshift-eng-ocp-qe-perfscale-ci-netobserv-perf-tests__netobserv-aws-4.23-nightly-x86.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci
INFO[0000] bumping obj
INFO[0000] bumping filename openshift-kni-eco-ci-cd-main__nightly-4.22.yaml
INFO[0000] bumped filename openshift-kni-eco-ci-cd-main__nightly-4.23.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/eco-ci-cd
INFO[0000] bumping obj
INFO[0000] marshalling obj openshift-eng-ocp-qe-perfscale-ci-netobserv-perf-tests__netobserv-aws-4.23-nightly-x86.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci
INFO[0000] bumping filename openshift-priv-cluster-authentication-operator-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-priv-cluster-authentication-operator-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/cluster-authentication-operator
INFO[0000] marshalling obj openshift-kni-eco-ci-cd-main__nightly-4.23.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/eco-ci-cd
INFO[0000] bumping obj
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/image-registry/openshift-priv-image-registry-release-4.22__periodics.yaml
INFO[0000] marshalling obj openshift-priv-cluster-authentication-operator-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/cluster-authentication-operator
INFO[0000] bumping filename openshift-priv-image-registry-release-4.22__periodics.yaml
INFO[0000] bumped filename openshift-priv-image-registry-release-4.23__periodics.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/image-registry
INFO[0000] bumping obj
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/microshift/openshift-priv-microshift-release-4.22.yaml
INFO[0000] marshalling obj openshift-priv-image-registry-release-4.23__periodics.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/image-registry
INFO[0000] bumping filename openshift-eng-ocp-qe-perfscale-ci-main__gcp-4.22-nightly-x86.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/microshift/openshift-priv-microshift-main.yaml
INFO[0000] bumped filename openshift-eng-ocp-qe-perfscale-ci-main__gcp-4.23-nightly-x86.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci
INFO[0000] bumping obj
INFO[0000] marshalling obj openshift-eng-ocp-qe-perfscale-ci-main__gcp-4.23-nightly-x86.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-eng/ocp-qe-perfscale-ci
INFO[0000] bumping filename openshift-kni-numaresources-operator-main.yaml
INFO[0000] bumped filename openshift-kni-numaresources-operator-main.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/numaresources-operator
WARN[0000] file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/numaresources-operator/openshift-kni-numaresources-operator-main.yaml already exists, skipping
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/openshift-tests-private/openshift-priv-openshift-tests-private-main.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/openshift-tests-private/openshift-priv-openshift-tests-private-release-4.22.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/shiftstack/ci/shiftstack-ci-release-4.22__upgrade-from-stable-4.21.yaml
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/shiftstack/ci/shiftstack-ci-release-4.22__techpreview.yaml
INFO[0000] bumping filename shiftstack-ci-release-4.22__upgrade-from-stable-4.21.yaml
INFO[0000] bumped filename shiftstack-ci-release-4.23__upgrade-from-stable-4.22.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/shiftstack/ci
INFO[0000] bumping obj
INFO[0000] marshalling obj shiftstack-ci-release-4.23__upgrade-from-stable-4.22.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/shiftstack/ci
INFO[0000] bumping config /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/shiftstack/ci/shiftstack-ci-release-4.22.yaml
INFO[0000] bumping filename shiftstack-ci-release-4.22__techpreview.yaml
INFO[0000] bumped filename shiftstack-ci-release-4.23__techpreview.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/shiftstack/ci
INFO[0000] bumping obj
INFO[0000] marshalling obj shiftstack-ci-release-4.23__techpreview.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/shiftstack/ci
INFO[0000] bumping filename openshift-priv-microshift-release-4.22.yaml
INFO[0000] bumped filename openshift-priv-microshift-release-4.23.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/microshift
WARN[0000] file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/microshift/openshift-priv-microshift-release-4.23.yaml already exists, skipping
INFO[0000] bumping filename openshift-priv-openshift-tests-private-main.yaml
INFO[0000] bumped filename openshift-priv-openshift-tests-private-main.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/openshift-tests-private
WARN[0000] file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/openshift-tests-private/openshift-priv-openshift-tests-private-main.yaml already exists, skipping
INFO[0000] bumping filename openshift-priv-openshift-tests-private-release-4.22.yaml
INFO[0000] bumped filename openshift-priv-openshift-tests-private-release-4.23.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/openshift-tests-private
WARN[0000] file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/openshift-tests-private/openshift-priv-openshift-tests-private-release-4.23.yaml already exists, skipping
INFO[0000] bumping filename openshift-priv-microshift-main.yaml
INFO[0000] bumped filename openshift-priv-microshift-main.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/microshift
WARN[0000] file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/microshift/openshift-priv-microshift-main.yaml already exists, skipping
INFO[0000] bumping filename shiftstack-ci-release-4.22.yaml
INFO[0000] bumped filename shiftstack-ci-release-4.23.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/shiftstack/ci
INFO[0000] bumping obj
INFO[0000] marshalling obj shiftstack-ci-release-4.23.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/shiftstack/ci
INFO[0000] bumping filename openshift-release-master__nightly-4.22.yaml
INFO[0000] bumped filename openshift-release-master__nightly-4.23.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] bumping obj
INFO[0000] bumping filename openshift-openshift-tests-private-release-4.22__multi-nightly.yaml
INFO[0000] bumped filename openshift-openshift-tests-private-release-4.23__multi-nightly.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private
INFO[0000] bumping obj
INFO[0000] marshalling obj openshift-release-master__nightly-4.23.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/release
INFO[0000] marshalling obj openshift-openshift-tests-private-release-4.23__multi-nightly.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private
INFO[0000] bumping filename openshift-openshift-tests-private-release-4.22__amd64-nightly.yaml
INFO[0000] bumped filename openshift-openshift-tests-private-release-4.23__amd64-nightly.yaml
DEBU[0000] out dir: /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private
INFO[0000] bumping obj
INFO[0000] marshalling obj openshift-openshift-tests-private-release-4.23__amd64-nightly.yaml to /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private
FATA[0000] failed to reconcile the status                error="bumper: [file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/microshift/openshift-microshift-release-4.23.yaml already exists, file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/microshift/openshift-microshift-main.yaml already exists, file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-main.yaml already exists, file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.23.yaml already exists, file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/kubevirt/hyperconverged-cluster-operator/kubevirt-hyperconverged-cluster-operator-main.yaml already exists, file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/commatrix/openshift-kni-commatrix-main.yaml already exists, file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/commatrix/openshift-kni-commatrix-release-4.23.yaml already exists, file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-kni/numaresources-operator/openshift-kni-numaresources-operator-main.yaml already exists, file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/microshift/openshift-priv-microshift-release-4.23.yaml already exists, file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/openshift-tests-private/openshift-priv-openshift-tests-private-main.yaml already exists, file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/openshift-tests-private/openshift-priv-openshift-tests-private-release-4.23.yaml already exists, file /home/afri/Projects/RH/github.com/openshift/release/ci-operator/config/openshift-priv/microshift/openshift-priv-microshift-main.yaml already exists]"
exit status 1

$ git -C $HOME/Projects/RH/github.com/openshift/release/ status
On branch dptp-4435-mock-prebranch-gating-jobs-3-signal
Untracked files:
  (use "git add <file>..." to include in what will be committed)
	ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__aws-4.23-nightly-x86-loaded-upgrade-from-4.22.yaml
	ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__aws-4.23-nightly-x86.yaml
	ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-main__gcp-4.23-nightly-x86.yaml
	ci-operator/config/openshift-eng/ocp-qe-perfscale-ci/openshift-eng-ocp-qe-perfscale-ci-netobserv-perf-tests__netobserv-aws-4.23-nightly-x86.yaml
	ci-operator/config/openshift-kni/eco-ci-cd/openshift-kni-eco-ci-cd-main__nightly-4.23.yaml
	ci-operator/config/openshift-priv/cluster-authentication-operator/openshift-priv-cluster-authentication-operator-release-4.23__periodics.yaml
	ci-operator/config/openshift-priv/image-registry/openshift-priv-image-registry-release-4.23__periodics.yaml
	ci-operator/config/openshift/aws-karpenter-provider-aws/openshift-aws-karpenter-provider-aws-release-4.23__periodics.yaml
	ci-operator/config/openshift/cluster-authentication-operator/openshift-cluster-authentication-operator-release-4.23__periodics.yaml
	ci-operator/config/openshift/cluster-control-plane-machine-set-operator/openshift-cluster-control-plane-machine-set-operator-release-4.23__periodics.yaml
	ci-operator/config/openshift/cluster-storage-operator/openshift-cluster-storage-operator-release-4.23__periodics.yaml
	ci-operator/config/openshift/csi-operator/openshift-csi-operator-release-4.23__periodics.yaml
	ci-operator/config/openshift/gcp-filestore-csi-driver-operator/openshift-gcp-filestore-csi-driver-operator-release-4.23__periodics.yaml
	ci-operator/config/openshift/gcp-pd-csi-driver-operator/openshift-gcp-pd-csi-driver-operator-release-4.23__periodics.yaml
	ci-operator/config/openshift/hypershift/openshift-hypershift-release-4.23__periodics.yaml
	ci-operator/config/openshift/image-registry/openshift-image-registry-release-4.23__periodics.yaml
	ci-operator/config/openshift/insights-operator/openshift-insights-operator-release-4.23__periodics.yaml
	ci-operator/config/openshift/machine-config-operator/openshift-machine-config-operator-release-4.23__periodics.yaml
	ci-operator/config/openshift/microshift/openshift-microshift-release-4.23__periodics.yaml
	ci-operator/config/openshift/multiarch/openshift-multiarch-master__nightly-4.23-upgrade-from-nightly-4.22.yaml
	ci-operator/config/openshift/multiarch/openshift-multiarch-master__nightly-4.23-upgrade-from-stable-4.22.yaml
	ci-operator/config/openshift/multiarch/openshift-multiarch-master__nightly-4.23.yaml
	ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.23__amd64-nightly.yaml
	ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.23__arm64-nightly.yaml
	ci-operator/config/openshift/openshift-tests-private/openshift-openshift-tests-private-release-4.23__multi-nightly.yaml
	ci-operator/config/openshift/operator-framework-olm/openshift-operator-framework-olm-release-4.23__periodics.yaml
	ci-operator/config/openshift/operator-framework-operator-controller/openshift-operator-framework-operator-controller-release-4.23__periodics.yaml
	ci-operator/config/openshift/osde2e/openshift-osde2e-main__nightly-4.23.yaml
	ci-operator/config/openshift/ovn-kubernetes/openshift-ovn-kubernetes-release-4.23__periodics.yaml
	ci-operator/config/openshift/release/openshift-release-master__ci-4.23-upgrade-from-stable-4.22-from-stable-4.21.yaml
	ci-operator/config/openshift/release/openshift-release-master__ci-4.23-upgrade-from-stable-4.22.yaml
	ci-operator/config/openshift/release/openshift-release-master__ci-4.23.yaml
	ci-operator/config/openshift/release/openshift-release-master__cnv-nightly-4.23.yaml
	ci-operator/config/openshift/release/openshift-release-master__nightly-4.23-upgrade-from-stable-4.21.yaml
	ci-operator/config/openshift/release/openshift-release-master__nightly-4.23-upgrade-from-stable-4.22.yaml
	ci-operator/config/openshift/release/openshift-release-master__nightly-4.23.yaml
	ci-operator/config/openshift/release/openshift-release-master__okd-scos-4.23-upgrade-from-okd-scos-4.22.yaml
	ci-operator/config/openshift/release/openshift-release-master__okd-scos-4.23.yaml
	ci-operator/config/shiftstack/ci/shiftstack-ci-release-4.23.yaml
	ci-operator/config/shiftstack/ci/shiftstack-ci-release-4.23__techpreview.yaml
	ci-operator/config/shiftstack/ci/shiftstack-ci-release-4.23__upgrade-from-stable-4.22.yaml

nothing added to commit but untracked files present (use "git add" to track)
```
Find all release gating job configs using the same method used for
determining which jobs will be consumed by TRT tooling. Code partially
adapted from openshift#4854.

Co-authored-by: Peter Rúček <56258989+Prucek@users.noreply.github.com>
@petr-muller petr-muller force-pushed the gjrg-for-payload-jobs branch from be22a2b to 929ee81 Compare January 14, 2026 01:11
@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Jan 14, 2026

@petr-muller: This pull request references DPTP-4435 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Find all release gating job configs using the same method used for determining which jobs will be consumed by TRT tooling. Code partially adapted from #4854.

When run over base state https://github.com/petr-muller/release/tree/dptp-4435-mock-prebranch-gating-jobs-final-base, it results in petr-muller/release@e8d717f over what the current tool creates in petr-muller/release@c8af926


branchcuts: bump versions in envvar values

Code adapted from #4854 by @Prucek

Results in the following changes over the previous commit: petr-muller/release@2822640


branchcuts: bump versions in base_images tags
Some configs import base_images from specified version-like tags like ci/tests-private:4.22. When tags are bare versions we can bumpt them too. We cannot bump tags where a version is a substring because cases like rhel-9-golang-1.24-openshift-4.22 cannot be handled by simply bumping the OCP version substring.

Results in the following changes over the previous commit: petr-muller/release@45a900a


branchcuts: ignore release gating jobs in openshift-priv

Results in the following changes over the previous commit: petr-muller/release@9c24588


branchcuts: ignore release gating jobs in non-variant configs
Nonvariant configs contain configuration that applies on the branch
directly and typically contains presubmits and postsubmits, not release
gating periodics.

It seems the only exception to this rule is this file (which is currently
missed by all other tooling):

ci-operator/config/shiftstack/ci/shiftstack-ci-release-4.22.yaml

Non-variant release-4.22 would typically be maintained by automation,
not manually, and TRT-facing jobs would be defined in a __periodics
file or something similar. If we can rename the config (which may be
non-trivial because job names carry meaning) the config may get picked
up by this tool again.

Results in the following changes over the previous commit: petr-muller/release@faca085

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@petr-muller petr-muller changed the title WIP: DPTP-4435: branchcuts: find all release gating jobs DPTP-4435: branchcuts: find all release gating jobs Jan 14, 2026
@petr-muller petr-muller marked this pull request as ready for review January 14, 2026 01:19
Copilot AI review requested due to automatic review settings January 14, 2026 01:19
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 14, 2026
@openshift-ci openshift-ci bot requested review from liangxia and smg247 January 14, 2026 01:19
}

// providesSignalForVersion returns a version (expected to be an "<MAJOR>.<MINOR>" OpenShift version) for which
// ProvidesSignalForVersion returns a version (expected to be an "<MAJOR>.<MINOR>" OpenShift version) for which
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a good home for this method better than prowgen package? It is technically not prowgen-internal anymore, something closer to ci-op configs would be a better fit. Prowgen would still use it but would import it from the new location.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it could be here: pkg/api/ocplifecycle or in pkg/branchcuts/<something>
WDYT?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pkg/api/ocplifecycle sounds good! Let me fix that up.

/hold

@petr-muller petr-muller force-pushed the gjrg-for-payload-jobs branch from 929ee81 to e71a368 Compare January 14, 2026 01:24
@petr-muller
Copy link
Member Author

/cc @Prucek @danilo-gemoli

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request improves the release gating jobs bumper tool to find and update all relevant release gating job configurations using the same signal-based method used by TRT tooling. The PR enhances version bumping capabilities across multiple configuration fields and adds a new file-finding mechanism.

Changes:

  • Exported ProvidesSignalForVersion function in prowgen package to enable reuse by branchcuts tooling
  • Added signal-based file finder that identifies configs providing CI signal for a version stream, with filtering for openshift-priv and non-variant configs
  • Extended version bumping to include base_images tags, environment variables in test steps, and metadata branch field
  • Added comprehensive test coverage for new bumping functions

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
pkg/prowgen/jobbase.go Exports ProvidesSignalForVersion function by capitalizing it, enabling reuse by branchcuts tooling
pkg/branchcuts/bumper/gen-release-jobs-bumper.go Adds signal-based file finder, extends bumping logic for env vars and base_images tags, updates metadata branch field
pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go Adds tests for new bumping functions (env vars, test step env vars, base images), updates existing tests to use new fileFinder parameter
cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go Adds file-finder CLI flag to select between regexp and signal-based file finding methods
Comments suppressed due to low confidence (1)

pkg/branchcuts/bumper/gen-release-jobs-bumper.go:149

  • The documentation comment lists fields that are bumped but is now incomplete. The function also bumps .base_images.*.tag (line 199), .tests[].multistage.environment (line 255), .tests[].multistage.workflow (line 270), .metadata.variant (line 165), .metadata.branch (line 170), and test intervals (lines 174-179). The documentation should be updated to reflect all the fields that are actually being bumped.
// BumpContent bumps OCP versions in the given ci-operator config
//
// Candidate bumping fields:
// .base_images.*.name
// .releases.*.{release,candidate}.version
// .releases.*.prerelease.version_bounds.{lower,upper}
// .tests[].steps.test[].env[].default

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pkg/branchcuts/bumper/gen-release-jobs-bumper.go (1)

321-332: Potential nil pointer dereference on env.Default.

env.Default is a *string and can be nil. Dereferencing it on line 324 without a nil check will cause a panic.

🐛 Proposed fix
 	for i := 0; i < len(multistageTest.Environment); i++ {
 		env := multistageTest.Environment[i]
+		if env.Default == nil {
+			continue
+		}
 		// value does not look like a version => nothing to bump
 		mm, err := ocplifecycle.ParseMajorMinor(*env.Default)
 		if err != nil {
 			continue
 		}
🤖 Fix all issues with AI agents
In `@pkg/branchcuts/bumper/gen-release-jobs-bumper.go`:
- Around line 44-49: The filepath.Walk callback passed to filepath.Walk in
gen-release-jobs-bumper.go ignores the incoming err parameter, so filesystem
errors (e.g., permission issues) are silently dropped; update the anonymous
func(path string, info fs.FileInfo, err error) error used with filepath.Walk to
first check if err != nil and return that error (or return filepath.SkipDir when
appropriate) before using getFilesRegexp and appending to files, ensuring Walk
surfaces filesystem errors instead of skipping them silently.
🧹 Nitpick comments (1)
pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go (1)

286-386: Consider adding a test case for nil Default pointer.

The tests cover nil LiteralTestStep but not the case where env.Default is nil while Environment is populated. This would help verify the fix for the nil pointer dereference issue.

💡 Suggested test case
{
    id:    "Handles nil Default in step environment",
    major: 4,
    testStep: cioperatorapi.TestStep{
        LiteralTestStep: &cioperatorapi.LiteralTestStep{
            Environment: []cioperatorapi.StepParameter{
                {Name: "SOME_VAR", Default: nil},
            },
        },
    },
    wantStep: cioperatorapi.TestStep{
        LiteralTestStep: &cioperatorapi.LiteralTestStep{
            Environment: []cioperatorapi.StepParameter{
                {Name: "SOME_VAR", Default: nil},
            },
        },
    },
},
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 69ff8fa and e71a368.

📒 Files selected for processing (4)
  • cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go
  • pkg/branchcuts/bumper/gen-release-jobs-bumper.go
  • pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go
  • pkg/prowgen/jobbase.go
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • pkg/prowgen/jobbase.go
  • cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go
  • pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go
  • pkg/branchcuts/bumper/gen-release-jobs-bumper.go
🧬 Code graph analysis (3)
pkg/prowgen/jobbase.go (1)
pkg/api/types.go (1)
  • ReleaseBuildConfiguration (37-140)
cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go (1)
pkg/branchcuts/bumper/gen-release-jobs-bumper.go (1)
  • NewGeneratedReleaseGatingJobsBumper (80-104)
pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go (1)
pkg/branchcuts/bumper/gen-release-jobs-bumper.go (2)
  • NewGeneratedReleaseGatingJobsBumper (80-104)
  • FileFinderSignal (28-28)
🔇 Additional comments (9)
pkg/prowgen/jobbase.go (1)

22-35: Function export is appropriate for its new cross-package usage.

The function is now consumed by makeGetFilesProvidingSignal in the bumper package. The export is necessary for this use case.

Note: A past review comment suggested moving this to a location closer to ci-op configs since it's no longer prowgen-internal. This is a valid consideration for future refactoring but doesn't block this PR.

pkg/branchcuts/bumper/gen-release-jobs-bumper.go (4)

54-76: Signal-based file finder implementation looks correct.

The filtering logic properly excludes openshift-priv and non-variant configs as specified in the PR objectives. The use of prowgen.ProvidesSignalForVersion for version matching is appropriate.


80-104: Constructor changes are well-structured.

The pluggable file-finder strategy is cleanly implemented with proper validation for unknown strategies.


185-209: Base image bumping logic is sound.

The approach of only bumping plain version tags (where ParseMajorMinor succeeds) while leaving complex tags like rhel-9-golang-1.24-openshift-4.22 untouched aligns with the PR objectives. Error aggregation ensures all images are attempted.


281-301: Environment variable bumping logic is correct.

The function properly handles non-version values by skipping them and correctly identifies version-like values for bumping based on the OCP_VERSION name or matching major version.

pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go (2)

205-284: Good test coverage for bumpStepEnvVars.

Tests cover the key scenarios: OCP_VERSION handling, major version matching, different major versions, non-version values, multiple vars, and nil input.


388-482: Comprehensive test coverage for bumpBaseImages.

Tests properly verify plain version tag bumping, substring version handling, cross-major version guards, and nil handling.

cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go (2)

34-34: Flag default aligns with PR objectives.

The default value of "signal" matches the commit message stating the switch to signal-based file finding as the default.


71-79: Constructor call correctly passes the new fileFinder parameter.

The error from the constructor will surface invalid fileFinder values, providing adequate validation.

Comment on lines +44 to +49
err := filepath.Walk(baseDir, func(path string, info fs.FileInfo, err error) error {
if getFilesRegexp.Match([]byte(path)) {
files = append(files, path)
}
return nil
})
Copy link

@coderabbitai coderabbitai bot Jan 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Walk callback ignores filesystem errors.

The err parameter in the Walk callback is not checked. This could silently skip directories or files due to permission errors or other filesystem issues.

🔧 Proposed fix
 	return func() ([]string, error) {
 		files := make([]string, 0)
 		err := filepath.Walk(baseDir, func(path string, info fs.FileInfo, err error) error {
+			if err != nil {
+				return err
+			}
 			if getFilesRegexp.Match([]byte(path)) {
 				files = append(files, path)
 			}
 			return nil
 		})
 		return files, err
 	}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
err := filepath.Walk(baseDir, func(path string, info fs.FileInfo, err error) error {
if getFilesRegexp.Match([]byte(path)) {
files = append(files, path)
}
return nil
})
err := filepath.Walk(baseDir, func(path string, info fs.FileInfo, err error) error {
if err != nil {
return err
}
if getFilesRegexp.Match([]byte(path)) {
files = append(files, path)
}
return nil
})
🤖 Prompt for AI Agents
In `@pkg/branchcuts/bumper/gen-release-jobs-bumper.go` around lines 44 - 49, The
filepath.Walk callback passed to filepath.Walk in gen-release-jobs-bumper.go
ignores the incoming err parameter, so filesystem errors (e.g., permission
issues) are silently dropped; update the anonymous func(path string, info
fs.FileInfo, err error) error used with filepath.Walk to first check if err !=
nil and return that error (or return filepath.SkipDir when appropriate) before
using getFilesRegexp and appending to files, ensuring Walk surfaces filesystem
errors instead of skipping them silently.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not new code, just extracted to a new method

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@petr-muller Thank you for the clarification! You're right — if this is existing behavior that's just been refactored, it makes sense to keep this PR focused on its primary objective rather than mixing in unrelated fixes.

Acknowledged! 🐰

@petr-muller petr-muller force-pushed the gjrg-for-payload-jobs branch from e71a368 to 0424df6 Compare January 14, 2026 07:16
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pkg/branchcuts/bumper/gen-release-jobs-bumper.go (1)

322-333: Nil pointer dereference when env.Default is nil.

env.Default is an optional field (*string). Dereferencing it at line 325 without a nil check will cause a panic if any StepParameter has no default value set.

🐛 Proposed fix
 	for i := 0; i < len(multistageTest.Environment); i++ {
 		env := multistageTest.Environment[i]
+		if env.Default == nil {
+			continue
+		}
 		// value does not look like a version => nothing to bump
 		mm, err := ocplifecycle.ParseMajorMinor(*env.Default)
 		if err != nil {
 			continue
 		}
♻️ Duplicate comments (1)
pkg/branchcuts/bumper/gen-release-jobs-bumper.go (1)

45-50: Walk callback ignores filesystem errors.

The err parameter in the Walk callback is not checked. Filesystem errors (permission issues, broken symlinks) will be silently ignored.

🔧 Proposed fix
 	return func() ([]string, error) {
 		files := make([]string, 0)
 		err := filepath.Walk(baseDir, func(path string, info fs.FileInfo, err error) error {
+			if err != nil {
+				return err
+			}
 			if getFilesRegexp.Match([]byte(path)) {
 				files = append(files, path)
 			}
 			return nil
 		})
 		return files, err
 	}
🧹 Nitpick comments (1)
pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go (1)

368-374: Consider adding a test case for nil Default value.

The test covers nil LiteralTestStep but doesn't test StepParameter entries where Default is nil. This would help catch the nil pointer dereference issue in bumpTestStepEnvVars.

💡 Suggested test case
{
	id:    "Handles nil Default in StepParameter",
	major: 4,
	testStep: cioperatorapi.TestStep{
		LiteralTestStep: &cioperatorapi.LiteralTestStep{
			Environment: []cioperatorapi.StepParameter{
				{Name: "REQUIRED_VAR"}, // Default is nil
			},
		},
	},
	wantStep: cioperatorapi.TestStep{
		LiteralTestStep: &cioperatorapi.LiteralTestStep{
			Environment: []cioperatorapi.StepParameter{
				{Name: "REQUIRED_VAR"},
			},
		},
	},
},
📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between e71a368 and 0424df6.

📒 Files selected for processing (3)
  • cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go
  • pkg/branchcuts/bumper/gen-release-jobs-bumper.go
  • pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go
  • pkg/branchcuts/bumper/gen-release-jobs-bumper.go
  • cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go
🧬 Code graph analysis (2)
pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go (2)
pkg/branchcuts/bumper/gen-release-jobs-bumper.go (2)
  • NewGeneratedReleaseGatingJobsBumper (81-105)
  • FileFinderSignal (29-29)
pkg/api/types.go (2)
  • StepParameter (1123-1130)
  • ImageStreamTagReference (499-506)
cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go (1)
pkg/branchcuts/bumper/gen-release-jobs-bumper.go (1)
  • NewGeneratedReleaseGatingJobsBumper (81-105)
🔇 Additional comments (4)
pkg/branchcuts/bumper/gen-release-jobs-bumper.go (1)

186-210: LGTM on error aggregation fix.

The bumpBaseImages function now correctly returns aggregated errors via errors.NewAggregate(errs), addressing the previous review feedback.

pkg/branchcuts/bumper/gen-release-jobs-bumper_test.go (1)

204-284: Good test coverage for bumpStepEnvVars.

The tests comprehensively cover multiple scenarios including OCP_VERSION, matching/mismatched major versions, non-version values, multiple variables, and nil input.

cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go (2)

23-34: LGTM on file-finder flag integration.

The new --file-finder flag is cleanly integrated with a sensible default (signal) and clear help text. Validation is appropriately delegated to the NewGeneratedReleaseGatingJobsBumper constructor.


71-80: Reconcile function correctly updated.

The NewGeneratedReleaseGatingJobsBumper call properly passes the new fileFinder parameter, maintaining consistent error handling.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

@petr-muller
Copy link
Member Author

/retest-required

}

// providesSignalForVersion returns a version (expected to be an "<MAJOR>.<MINOR>" OpenShift version) for which
// ProvidesSignalForVersion returns a version (expected to be an "<MAJOR>.<MINOR>" OpenShift version) for which
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it could be here: pkg/api/ocplifecycle or in pkg/branchcuts/<something>
WDYT?

@openshift-ci openshift-ci bot added lgtm Indicates that a PR is ready to be merged. approved Indicates a PR has been approved by an approver from all required OWNERS files. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. labels Jan 14, 2026
Copilot AI review requested due to automatic review settings January 14, 2026 13:25
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Jan 14, 2026
@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Jan 14, 2026

@petr-muller: This pull request references DPTP-4435 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

Find all release gating job configs using the same method used for determining which jobs will be consumed by TRT tooling. Code partially adapted from #4854.

When run over base state https://github.com/petr-muller/release/tree/dptp-4435-mock-prebranch-gating-jobs-final-base, it results in petr-muller/release@e8d717f over what the current tool creates in petr-muller/release@c8af926


branchcuts: bump versions in envvar values

Code adapted from #4854 by @Prucek

Results in the following changes over the previous commit: petr-muller/release@2822640


branchcuts: bump versions in base_images tags
Some configs import base_images from specified version-like tags like ci/tests-private:4.22. When tags are bare versions we can bumpt them too. We cannot bump tags where a version is a substring because cases like rhel-9-golang-1.24-openshift-4.22 cannot be handled by simply bumping the OCP version substring.

Results in the following changes over the previous commit: petr-muller/release@45a900a


branchcuts: ignore release gating jobs in openshift-priv

Results in the following changes over the previous commit: petr-muller/release@9c24588


branchcuts: ignore release gating jobs in non-variant configs
Nonvariant configs contain configuration that applies on the branch
directly and typically contains presubmits and postsubmits, not release
gating periodics.

It seems the only exception to this rule is this file (which is currently
missed by all other tooling):

ci-operator/config/shiftstack/ci/shiftstack-ci-release-4.22.yaml

Non-variant release-4.22 would typically be maintained by automation,
not manually, and TRT-facing jobs would be defined in a __periodics
file or something similar. If we can rename the config (which may be
non-trivial because job names carry meaning) the config may get picked
up by this tool again.

Results in the following changes over the previous commit: petr-muller/release@faca085


refactor: move ProvidesSignalForVersion to ocplifecycle

The method is no longer prowgen-internal, it is now a more general
ci-operator interrogation method that is used both for marking jobs for
TRT consumption (through job-release label) and on the other side for
recognizing which jobs would be marked as such, so they can be handled
by tooling e.g. involved in branchcuts.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@petr-muller
Copy link
Member Author

/hold cancel

@openshift-ci openshift-ci bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jan 14, 2026
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.

Comments suppressed due to low confidence (2)

cmd/branchingconfigmanagers/generated-release-gating-jobs/main.go:53

  • The file-finder flag value is not validated in gatherOptions(). Invalid values will only be caught when creating the bumper. Consider adding validation here to provide earlier feedback to users. For example, check if the value is one of the valid options: regexp or signal.
func gatherOptions() (*options, error) {
	var errs []error
	o := &options{}
	flag.StringVar(&o.curOCPVersion, "current-release", "", "Current OCP version")
	flag.StringVar(&o.releaseRepoDir, "release-repo", "", "Path to 'openshift/release/ folder")
	flag.IntVar(&o.newIntervalValue, "interval", 168, "New interval to set")
	flag.IntVar(&o.logLevel, "log-level", int(logrus.DebugLevel), "Log level")
	flag.StringVar(&o.fileFinder, "file-finder", "signal", "Method to find files with gating jobs. One of: regexp | signal")
	flag.Parse()

	if _, err := ocplifecycle.ParseMajorMinor(o.curOCPVersion); o.curOCPVersion != "" && err != nil {
		errs = append(errs, fmt.Errorf("error parsing current-release %s", o.curOCPVersion))
	}

	if o.newIntervalValue < 0 {
		errs = append(errs, errors.New("error parsing interval: value is not a positive integer"))
	}

	if o.releaseRepoDir != "" {
		if !path.IsAbs(o.releaseRepoDir) {
			errs = append(errs, errors.New("error parsing release repo path: path has to be absolute"))
		}
	} else {
		errs = append(errs, errors.New("error parsing release repo path: path is mandatory"))
	}

	return o, utilerrors.NewAggregate(errs)

pkg/branchcuts/bumper/gen-release-jobs-bumper.go:149

  • The documentation comment for BumpContent is incomplete. It lists candidate bumping fields but is missing several fields that are actually bumped by the implementation: .base_images.*.tag, .tests[].steps.{pre,test,post}[].env[].default, .tests[].multi_stage_test_configuration.environment, .tests[].multi_stage_test_configuration.workflow, .metadata.variant, and .metadata.branch.
// BumpContent bumps OCP versions in the given ci-operator config
//
// Candidate bumping fields:
// .base_images.*.name
// .releases.*.{release,candidate}.version
// .releases.*.prerelease.version_bounds.{lower,upper}
// .tests[].steps.test[].env[].default

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

return nil
}
for i := 0; i < len(multistageTest.Environment); i++ {
env := multistageTest.Environment[i]
Copy link

Copilot AI Jan 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code dereferences env.Default without checking if it's nil. Since Default is a pointer field that can be nil (as indicated by the omitempty JSON tag), this will cause a panic if an environment variable is defined without a default value. Add a nil check before dereferencing: if env.Default == nil { continue }.

Suggested change
env := multistageTest.Environment[i]
env := multistageTest.Environment[i]
if env.Default == nil {
continue
}

Copilot uses AI. Check for mistakes.
Comment on lines +44 to +48
err := filepath.Walk(baseDir, func(path string, info fs.FileInfo, err error) error {
if getFilesRegexp.Match([]byte(path)) {
files = append(files, path)
}
return nil
Copy link

Copilot AI Jan 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The error parameter passed to the walk function is not checked before processing. If there's an error accessing a file or directory, it should be handled. Add a check: if err != nil { return err } at the beginning of the walk function to properly propagate errors.

Copilot uses AI. Check for mistakes.
Comment on lines 286 to 406
func TestBumpTestStepEnvVars(t *testing.T) {
strRef := func(i string) *string {
return &i
}
tests := []struct {
id string
major int
testStep cioperatorapi.TestStep
wantStep cioperatorapi.TestStep
}{
{
id: "Bumps OCP_VERSION in step environment",
major: 4,
testStep: cioperatorapi.TestStep{
LiteralTestStep: &cioperatorapi.LiteralTestStep{
Environment: []cioperatorapi.StepParameter{
{Name: "OCP_VERSION", Default: strRef("4.10")},
},
},
},
wantStep: cioperatorapi.TestStep{
LiteralTestStep: &cioperatorapi.LiteralTestStep{
Environment: []cioperatorapi.StepParameter{
{Name: "OCP_VERSION", Default: strRef("4.11")},
},
},
},
},
{
id: "Bumps any env var with matching major version",
major: 4,
testStep: cioperatorapi.TestStep{
LiteralTestStep: &cioperatorapi.LiteralTestStep{
Environment: []cioperatorapi.StepParameter{
{Name: "CUSTOM_VAR", Default: strRef("4.10")},
},
},
},
wantStep: cioperatorapi.TestStep{
LiteralTestStep: &cioperatorapi.LiteralTestStep{
Environment: []cioperatorapi.StepParameter{
{Name: "CUSTOM_VAR", Default: strRef("4.11")},
},
},
},
},
{
id: "Does not bump env var with different major version",
major: 4,
testStep: cioperatorapi.TestStep{
LiteralTestStep: &cioperatorapi.LiteralTestStep{
Environment: []cioperatorapi.StepParameter{
{Name: "OTHER_VAR", Default: strRef("5.10")},
},
},
},
wantStep: cioperatorapi.TestStep{
LiteralTestStep: &cioperatorapi.LiteralTestStep{
Environment: []cioperatorapi.StepParameter{
{Name: "OTHER_VAR", Default: strRef("5.10")},
},
},
},
},
{
id: "Does not bump non-version value",
major: 4,
testStep: cioperatorapi.TestStep{
LiteralTestStep: &cioperatorapi.LiteralTestStep{
Environment: []cioperatorapi.StepParameter{
{Name: "SOME_VAR", Default: strRef("not-a-version")},
},
},
},
wantStep: cioperatorapi.TestStep{
LiteralTestStep: &cioperatorapi.LiteralTestStep{
Environment: []cioperatorapi.StepParameter{
{Name: "SOME_VAR", Default: strRef("not-a-version")},
},
},
},
},
{
id: "Handles nil LiteralTestStep",
major: 4,
testStep: cioperatorapi.TestStep{},
wantStep: cioperatorapi.TestStep{},
},
}
for _, test := range tests {
t.Run(test.id, func(t *testing.T) {
err := bumpTestStepEnvVars(test.testStep, test.major)
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if diff := cmp.Diff(test.wantStep, test.testStep); diff != "" {
t.Errorf("test steps are different: %s", diff)
}
})
}
}
Copy link

Copilot AI Jan 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test coverage is missing for the case where env.Default is nil. This is important because Default is a pointer field that can be nil (as indicated by the omitempty JSON tag in the API definition), and the implementation should handle this case gracefully to prevent panics.

Copilot uses AI. Check for mistakes.
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pkg/branchcuts/bumper/gen-release-jobs-bumper.go (1)

317-336: Potential nil pointer dereference on env.Default.

Line 324 dereferences env.Default without checking if it's nil. While the function checks that LiteralTestStep and the Environment slice exist, individual StepParameter entries may have a nil Default field (it's optional with omitempty tag).

🐛 Proposed fix
 	for i := 0; i < len(multistageTest.Environment); i++ {
 		env := multistageTest.Environment[i]
+		if env.Default == nil {
+			continue
+		}
 		// value does not look like a version => nothing to bump
 		mm, err := ocplifecycle.ParseMajorMinor(*env.Default)
 		if err != nil {
 			continue
 		}
♻️ Duplicate comments (1)
pkg/branchcuts/bumper/gen-release-jobs-bumper.go (1)

38-52: Pre-existing: Walk callback ignores filesystem errors.

The err parameter is not checked, which could silently skip files on permission errors. This was flagged previously and acknowledged as pre-existing behavior. Consider addressing in a follow-up.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 0424df6 and c05d952.

📒 Files selected for processing (3)
  • pkg/api/ocplifecycle/ocplifecycle.go
  • pkg/branchcuts/bumper/gen-release-jobs-bumper.go
  • pkg/prowgen/jobbase.go
🚧 Files skipped from review as they are similar to previous changes (1)
  • pkg/prowgen/jobbase.go
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.

Files:

  • pkg/api/ocplifecycle/ocplifecycle.go
  • pkg/branchcuts/bumper/gen-release-jobs-bumper.go
🧬 Code graph analysis (2)
pkg/api/ocplifecycle/ocplifecycle.go (1)
pkg/api/types.go (2)
  • LatestReleaseName (2865-2865)
  • Candidate (364-370)
pkg/branchcuts/bumper/gen-release-jobs-bumper.go (3)
pkg/api/ocplifecycle/ocplifecycle.go (3)
  • MajorMinor (199-202)
  • ProvidesSignalForVersion (262-267)
  • ParseMajorMinor (237-252)
pkg/config/load.go (2)
  • OperateOnCIOperatorConfigDir (327-329)
  • DataWithInfo (415-418)
pkg/api/types.go (2)
  • ReleaseBuildConfiguration (37-140)
  • Metadata (161-166)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Agent
  • GitHub Check: CodeQL analysis (go)
🔇 Additional comments (10)
pkg/api/ocplifecycle/ocplifecycle.go (2)

15-16: LGTM!

The new import is correctly added and properly aliased for clarity.


253-267: LGTM!

The function is well-documented and correctly implements the signal detection logic. The nil check on release.Candidate prevents potential nil pointer dereference.

pkg/branchcuts/bumper/gen-release-jobs-bumper.go (8)

21-29: LGTM!

The constants are well-organized and clearly named. The file finder strategy constants (FileFinderRegexp, FileFinderSignal) provide a clean API for selecting the discovery method.


54-76: LGTM!

The signal-based file finder is well-implemented with clear comments explaining the filtering logic. The integration with ocplifecycle.ProvidesSignalForVersion is correct.


80-104: LGTM!

The constructor cleanly implements the strategy pattern with proper validation of the fileFinder parameter.


125-141: LGTM!

The function correctly bumps both Variant and Branch fields, ensuring consistency with the metadata updates in BumpContent.


143-183: LGTM!

The content bumping workflow is well-structured, handling all relevant configuration fields. The separation between dataWithInfo.Info.Metadata (file path) and config.Metadata (embedded config) justifies bumping in both BumpFilename and BumpContent.


185-209: LGTM!

The error aggregation is now correctly returned via errors.NewAggregate(errs). The selective tag bumping (only plain versions like 4.21) is a sensible approach with clear documentation.


243-279: LGTM!

The function properly handles environment variables at the test level and correctly guards workflow bumping with a nil check.


281-301: LGTM!

The helper correctly identifies version-like environment values and applies bumping logic consistently. Error aggregation is properly implemented.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jan 14, 2026
petr-muller and others added 6 commits January 14, 2026 14:52
Code adapted from openshift#4854 by @Prucek

Co-authored-by: Peter Rúček <56258989+Prucek@users.noreply.github.com>
Some configs import base_images from specified version-like tags like `ci/tests-private:4.22`. When tags are bare versions we can bumpt them too. We cannot bump tags where a version is a substring because cases like `rhel-9-golang-1.24-openshift-4.22` cannot be handled by simply bumping the OCP version substring.
Nonvariant configs contain configuration that applies on the branch
directly and typically contains presubmits and postsubmits, not release
gating periodics.

It seems the only exception to this rule is this file (which is currently
missed by all other tooling):

ci-operator/config/shiftstack/ci/shiftstack-ci-release-4.22.yaml

Non-variant release-4.22 would typically be maintained by automation,
not manually, and TRT-facing jobs would be defined in a __periodics
file or something similar. If we can rename the config (which may be
non-trivial because job names carry meaning) the config may get picked
up by this tool again.
The method is no longer prowgen-internal, it is now a more general
ci-operator interrogation method that is used both for marking jobs for
TRT consumption (through `job-release` label) and on the other side for
recognizing which jobs would be marked as such, so they can be handled
by tooling e.g. involved in branchcuts.
@petr-muller petr-muller force-pushed the gjrg-for-payload-jobs branch from c05d952 to 0b8d4f8 Compare January 14, 2026 13:52
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Jan 14, 2026
@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jan 14, 2026
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 14, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: petr-muller, Prucek

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@petr-muller
Copy link
Member Author

/test unit

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 14, 2026

@petr-muller: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/unit 0b8d4f8 link true /test unit
ci/prow/images 0b8d4f8 link true /test images
ci/prow/breaking-changes 0b8d4f8 link false /test breaking-changes

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants