Skip to content

[DNM] Sync Serverless CI config/#81603

Closed
maschmid wants to merge 1 commit into
openshift:mainfrom
maschmid:sync-serverless-ci
Closed

[DNM] Sync Serverless CI config/#81603
maschmid wants to merge 1 commit into
openshift:mainfrom
maschmid:sync-serverless-ci

Conversation

@maschmid

@maschmid maschmid commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Do not merge, rehearsing changes from openshift-knative/hack#993

Summary by CodeRabbit

This PR updates generated CI operator config for multiple OpenShift Knative component repos to align release-v1.17/v1.21/v1.22 and release-1.37 jobs with newer OpenShift 4.22/5.0 targeting. In practical terms, it reshapes when jobs run, what release stream they track, and how images are promoted for downstream Knative components.

Key changes include:

  • Switching several configs between run_if_changed and skip_if_only_changed gating.
  • Moving jobs from nightly candidate targeting to fast release targeting in some branches, and vice versa in others.
  • Updating promotion wiring for component source images.
  • Reworking a large set of e2e/reconciler workflows between ipi-aws and generic-claim, including cluster claim settings, cron/reporting, and post-step behavior.
  • Bumping release/version metadata across many serverless-operator, serving, eventing, net-istio, net-kourier, client, and plugin CI configs.

One large eventing-istio v1.17 variant was removed, while corresponding v1.17/v1.21/v1.22 variants were refreshed to match the new CI layout.

@maschmid

maschmid commented Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

/hold

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jul 8, 2026
@openshift-ci
openshift-ci Bot requested review from Cali0707 and aliok July 8, 2026 10:36
@openshift-ci

openshift-ci Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: maschmid
Once this PR has been reviewed and has the lgtm label, please assign rudyredhat1 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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

@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This PR is a large-scale automated regeneration of ci-operator release configuration YAML files across many openshift-knative repositories. Changes include bumping OCP versions to 4.22/5.0, switching release vs candidate channel selection, adding/removing skip_if_only_changed and promotion rules, and converting test workflows between ipi-aws/cluster_profile and generic-claim/cluster_claim styles with added cron scheduling and reporter configs.

Changes

CI Operator Release Config Updates

Layer / File(s) Summary
Backstage-plugins release configs
ci-operator/config/openshift-knative/backstage-plugins/*.yaml
Updates release/candidate selection, promotion, and skip/run gating across v1.17/v1.21/v1.22 variants.
Client release configs and e2e rewiring
ci-operator/config/openshift-knative/client/*.yaml
Updates promotion, release/candidate selection, and test-e2e workflow style (ipi-aws vs generic-claim) across variants.
Eventing-integrations release configs
ci-operator/config/openshift-knative/eventing-integrations/*.yaml
Updates gating, promotion, and release/candidate selection across v1.17/v1.21 variants.
Eventing-istio release configs and e2e-tests workflow
ci-operator/config/openshift-knative/eventing-istio/*.yaml
Adds new v1.17__50 config, rewrites e2e-tests into generic-claim scheduled jobs with cron/reporter config, bumps versions in v1.21__422.
Eventing-kafka-broker image tags and test matrix
ci-operator/config/openshift-knative/eventing-kafka-broker/*.yaml
Updates base image tags, release/candidate selection, promotion, and rewrites large conformance/e2e/reconciler test job matrices with new scheduled -c variants.
Eventing release configs and test matrix
ci-operator/config/openshift-knative/eventing/*.yaml
Updates gating/promotion/release selection and rewrites conformance/e2e/reconciler test definitions between ipi-aws and generic-claim styles.
kn-plugin-event and kn-plugin-func configs
ci-operator/config/openshift-knative/kn-plugin-event/*.yaml, ci-operator/config/openshift-knative/kn-plugin-func/*.yaml
Updates promotion, release/candidate selection, test job definitions, and version bumps.
net-istio and net-kourier configs
ci-operator/config/openshift-knative/net-istio/*.yaml, ci-operator/config/openshift-knative/net-kourier/*.yaml
Updates gating, promotion, and release/candidate selection across variants.
serverless-operator version-only bumps
ci-operator/config/openshift-knative/serverless-operator/openshift-knative-serverless-operator-main__4.22-*.yaml, ...__422-*.yaml, ...__ocp-5.0-*.yaml
Bumps version/variant metadata from 4.21/4.22 to 4.22/5.0 in platform-specific variant files.
serverless-operator main/release-1.37 test matrix
ci-operator/config/openshift-knative/serverless-operator/openshift-knative-serverless-operator-main__{422,50}.yaml, ...-release-1.37__{422,50}.yaml
Rewrites gating, promotion, and the full test job matrix between ipi-aws and generic-claim workflows with cron/reporter config.
Serving release configs and e2e rewiring
ci-operator/config/openshift-knative/serving/*.yaml
Updates gating, promotion, release/candidate selection, and test-e2e workflow style across v1.17/v1.21 variants.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Suggested labels: rehearsals-ack

Suggested reviewers: mpryc, kaovilai, shubham-pampattiwar, Joeavaikath

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@maschmid: the pj-rehearse plugin accommodates running rehearsal tests for the changes in this PR. Expand 'Interacting with pj-rehearse' for usage details. The following rehearsable tests have been affected by this change:

Test name Repo Type Reason
pull-ci-openshift-knative-serverless-operator-main-4.22-techpreview-images openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-aws-ovn-images openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-azure-images openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-gcp-images openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-hypershift-images openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-images openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-kitchensink-e2e openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-mesh-e2e openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-mesh-upgrade openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-operator-e2e openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-single-node-images openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-test-soak openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-test-upgrade openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-ui-e2e openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-upstream-e2e openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-upstream-e2e-kafka openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-422-vsphere-images openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-50-images openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-50-kitchensink-e2e openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-50-kitchensink-upgrade openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-50-mesh-e2e openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-50-mesh-upgrade openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-50-operator-e2e openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-50-test-soak openshift-knative/serverless-operator presubmit Presubmit changed
pull-ci-openshift-knative-serverless-operator-main-50-test-upgrade openshift-knative/serverless-operator presubmit Presubmit changed

A total of 213 jobs have been affected by this change. The above listing is non-exhaustive and limited to 25 jobs.

A full list of affected jobs can be found here
Prior to this PR being merged, you will need to either run and acknowledge or opt to skip these rehearsals.

Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse list to get an up-to-date list of affected jobs
Comment: /pj-rehearse abort to abort all active rehearsals
Comment: /pj-rehearse network-access-allowed to allow rehearsals of tests that have the restrict_network_access field set to false. This must be executed by an openshift org member who is not the PR author

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

@maschmid

maschmid commented Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-openshift-knative-serverless-operator-main-422-operator-e2e pull-ci-openshift-knative-serverless-operator-main-50-operator-e2e periodic-ci-openshift-knative-serverless-operator-release-1.37-ocp-5.0-lpGA-lp-ocp-compat-cr--operator-e2e--aws

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@maschmid: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 9

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@ci-operator/config/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.17__422.yaml`:
- Line 27: The skip_if_only_changed pattern is too broad because the leading dot
in the hidden directories is treated as a wildcard and the markdown match is not
end-anchored. Update the regex in the release config to escape the literal dots
for .tekton, .konflux, and .github, and anchor the markdown rule so it only
matches files ending in .md. Keep the existing behavior for the hack, OWNERS,
and rpms.lock.yaml paths while tightening the matching in this configuration
key.

In
`@ci-operator/config/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.21__422.yaml`:
- Line 27: The skip_if_only_changed pattern is too broad because the leading
dots in .tekton, .konflux, and .github are acting as wildcards, and the markdown
matcher is not anchored to the end. Update the regex in the release config entry
to escape the literal dots for those path prefixes and tighten the markdown rule
so it only matches files ending in .md, keeping the rest of the skip logic in
the same pattern.

In
`@ci-operator/config/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.22__422.yaml`:
- Line 27: The skip_if_only_changed pattern is too broad because the leading dot
in the .tekton, .konflux, and .github path checks is acting as a wildcard, and
the markdown matcher is not anchored. Update the regex in the release config to
escape those literal dot-prefixed directories/files and tighten the markdown
match so it only skips .md files, using the skip_if_only_changed entry as the
target to adjust.

In
`@ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.17__422.yaml`:
- Line 73: The root-level job filter is currently nested under images, so move
skip_if_only_changed out of the images block in the
openshift-knative-client-release-v1.17 configuration. Keep the setting at the
top level alongside the CI job fields so it is parsed as a job property rather
than images.skip_if_only_changed, and verify the images section only contains
image-related keys.

In
`@ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.17__50.yaml`:
- Line 73: The presubmit trigger configuration is nested incorrectly under the
images block, so run_if_changed is being treated as images.run_if_changed
instead of a job-level setting. Move run_if_changed out of the images section in
the affected config so it is parsed as a CI job property alongside always_run
and the other top-level presubmit fields.

In
`@ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.21__422.yaml`:
- Line 73: The `skip_if_only_changed` setting is nested under `images` in the
release config, so it is being parsed as an image-level field instead of a
top-level CI job filter. Move `skip_if_only_changed` out to the root of the
config in the `openshift-knative-client-release-v1.21__422.yaml` definition so
it applies to the job itself, and keep the existing regex value unchanged.

In
`@ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.21__50.yaml`:
- Line 73: The presubmit gate is being parsed as images.run_if_changed because
run_if_changed is nested under images, so move run_if_changed to the top-level
job configuration alongside always_run in the
openshift-knative-client-release-v1.21__50.yaml config. Update the job stanza
for the relevant CI definition so the trigger condition is applied as a CI job
property rather than an image field.

In
`@ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.22__50.yaml`:
- Line 83: Move the run_if_changed gate out of the images block so it is treated
as the presubmit job-level setting instead of images.run_if_changed. Update the
relevant job definition in the release config so the gate sits alongside the
other top-level presubmit fields (for the same job that currently contains
always_run), preserving the intended trigger behavior when always_run is false.

In
`@ci-operator/config/openshift-knative/serving/openshift-knative-serving-release-v1.17__50.yaml`:
- Line 339: The release job configuration includes a duplicate deprovision ref
that is already covered by the ipi-aws workflow through chain: ipi-deprovision,
so remove the extra ipi-deprovision-deprovision entry from this config. Update
the YAML around the affected job definition so only the workflow-provided
cleanup remains, and keep the rest of the ipi-aws setup unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 658fb78c-888c-4aee-b89d-6ce38d9f0e7b

📥 Commits

Reviewing files that changed from the base of the PR and between 821027b and 0781fb3.

⛔ Files ignored due to path filters (70)
  • ci-operator/jobs/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.17-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.17-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.21-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.21-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.22-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.22-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/client/openshift-knative-client-release-v1.17-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/client/openshift-knative-client-release-v1.17-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/client/openshift-knative-client-release-v1.21-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/client/openshift-knative-client-release-v1.21-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/client/openshift-knative-client-release-v1.22-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/client/openshift-knative-client-release-v1.22-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-integrations/openshift-knative-eventing-integrations-release-v1.17-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-integrations/openshift-knative-eventing-integrations-release-v1.17-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-integrations/openshift-knative-eventing-integrations-release-v1.21-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-integrations/openshift-knative-eventing-integrations-release-v1.21-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-istio/openshift-knative-eventing-istio-release-v1.17-periodics.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-istio/openshift-knative-eventing-istio-release-v1.17-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-istio/openshift-knative-eventing-istio-release-v1.17-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-istio/openshift-knative-eventing-istio-release-v1.21-periodics.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-istio/openshift-knative-eventing-istio-release-v1.21-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-istio/openshift-knative-eventing-istio-release-v1.21-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-kafka-broker/openshift-knative-eventing-kafka-broker-release-v1.17-periodics.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-kafka-broker/openshift-knative-eventing-kafka-broker-release-v1.17-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-kafka-broker/openshift-knative-eventing-kafka-broker-release-v1.17-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-kafka-broker/openshift-knative-eventing-kafka-broker-release-v1.21-periodics.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-kafka-broker/openshift-knative-eventing-kafka-broker-release-v1.21-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing-kafka-broker/openshift-knative-eventing-kafka-broker-release-v1.21-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing/openshift-knative-eventing-release-v1.17-periodics.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing/openshift-knative-eventing-release-v1.17-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing/openshift-knative-eventing-release-v1.17-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing/openshift-knative-eventing-release-v1.21-periodics.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing/openshift-knative-eventing-release-v1.21-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/eventing/openshift-knative-eventing-release-v1.21-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/kn-plugin-event/openshift-knative-kn-plugin-event-release-1.17-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/kn-plugin-event/openshift-knative-kn-plugin-event-release-1.17-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/kn-plugin-event/openshift-knative-kn-plugin-event-release-1.21-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/kn-plugin-event/openshift-knative-kn-plugin-event-release-1.21-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/kn-plugin-event/openshift-knative-kn-plugin-event-release-1.22-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/kn-plugin-event/openshift-knative-kn-plugin-event-release-1.22-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/kn-plugin-event/openshift-knative-kn-plugin-event-release-next-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/kn-plugin-event/openshift-knative-kn-plugin-event-release-next-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/kn-plugin-func/openshift-knative-kn-plugin-func-release-v1.17-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/kn-plugin-func/openshift-knative-kn-plugin-func-release-v1.17-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/kn-plugin-func/openshift-knative-kn-plugin-func-release-v1.21-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/kn-plugin-func/openshift-knative-kn-plugin-func-release-v1.21-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/net-istio/openshift-knative-net-istio-release-v1.17-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/net-istio/openshift-knative-net-istio-release-v1.17-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/net-istio/openshift-knative-net-istio-release-v1.21-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/net-istio/openshift-knative-net-istio-release-v1.21-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/net-istio/openshift-knative-net-istio-release-v1.22-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/net-istio/openshift-knative-net-istio-release-v1.22-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/net-kourier/openshift-knative-net-kourier-release-v1.17-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/net-kourier/openshift-knative-net-kourier-release-v1.17-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/net-kourier/openshift-knative-net-kourier-release-v1.21-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/net-kourier/openshift-knative-net-kourier-release-v1.21-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/net-kourier/openshift-knative-net-kourier-release-v1.22-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/net-kourier/openshift-knative-net-kourier-release-v1.22-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/serverless-operator/openshift-knative-serverless-operator-main-periodics.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/serverless-operator/openshift-knative-serverless-operator-main-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/serverless-operator/openshift-knative-serverless-operator-main-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/serverless-operator/openshift-knative-serverless-operator-release-1.37-periodics.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/serverless-operator/openshift-knative-serverless-operator-release-1.37-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/serverless-operator/openshift-knative-serverless-operator-release-1.37-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/serving/openshift-knative-serving-release-v1.17-periodics.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/serving/openshift-knative-serving-release-v1.17-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/serving/openshift-knative-serving-release-v1.17-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/serving/openshift-knative-serving-release-v1.21-periodics.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/serving/openshift-knative-serving-release-v1.21-postsubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/openshift-knative/serving/openshift-knative-serving-release-v1.21-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (66)
  • ci-operator/config/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.17__422.yaml
  • ci-operator/config/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.17__50.yaml
  • ci-operator/config/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.21__422.yaml
  • ci-operator/config/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.21__50.yaml
  • ci-operator/config/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.22__422.yaml
  • ci-operator/config/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.22__50.yaml
  • ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.17__422.yaml
  • ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.17__50.yaml
  • ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.21__422.yaml
  • ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.21__50.yaml
  • ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.22__422.yaml
  • ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.22__50.yaml
  • ci-operator/config/openshift-knative/eventing-integrations/openshift-knative-eventing-integrations-release-v1.17__422.yaml
  • ci-operator/config/openshift-knative/eventing-integrations/openshift-knative-eventing-integrations-release-v1.17__50.yaml
  • ci-operator/config/openshift-knative/eventing-integrations/openshift-knative-eventing-integrations-release-v1.21__422.yaml
  • ci-operator/config/openshift-knative/eventing-integrations/openshift-knative-eventing-integrations-release-v1.21__50.yaml
  • ci-operator/config/openshift-knative/eventing-istio/openshift-knative-eventing-istio-release-v1.17__421.yaml
  • ci-operator/config/openshift-knative/eventing-istio/openshift-knative-eventing-istio-release-v1.17__422.yaml
  • ci-operator/config/openshift-knative/eventing-istio/openshift-knative-eventing-istio-release-v1.17__50.yaml
  • ci-operator/config/openshift-knative/eventing-istio/openshift-knative-eventing-istio-release-v1.21__422.yaml
  • ci-operator/config/openshift-knative/eventing-kafka-broker/openshift-knative-eventing-kafka-broker-release-v1.17__414.yaml
  • ci-operator/config/openshift-knative/eventing-kafka-broker/openshift-knative-eventing-kafka-broker-release-v1.17__421.yaml
  • ci-operator/config/openshift-knative/eventing-kafka-broker/openshift-knative-eventing-kafka-broker-release-v1.17__422.yaml
  • ci-operator/config/openshift-knative/eventing-kafka-broker/openshift-knative-eventing-kafka-broker-release-v1.17__50.yaml
  • ci-operator/config/openshift-knative/eventing-kafka-broker/openshift-knative-eventing-kafka-broker-release-v1.21__422.yaml
  • ci-operator/config/openshift-knative/eventing-kafka-broker/openshift-knative-eventing-kafka-broker-release-v1.21__50.yaml
  • ci-operator/config/openshift-knative/eventing/openshift-knative-eventing-release-v1.17__422.yaml
  • ci-operator/config/openshift-knative/eventing/openshift-knative-eventing-release-v1.17__50.yaml
  • ci-operator/config/openshift-knative/eventing/openshift-knative-eventing-release-v1.21__422.yaml
  • ci-operator/config/openshift-knative/eventing/openshift-knative-eventing-release-v1.21__50.yaml
  • ci-operator/config/openshift-knative/kn-plugin-event/openshift-knative-kn-plugin-event-release-1.17__422.yaml
  • ci-operator/config/openshift-knative/kn-plugin-event/openshift-knative-kn-plugin-event-release-1.17__50.yaml
  • ci-operator/config/openshift-knative/kn-plugin-event/openshift-knative-kn-plugin-event-release-1.21__422.yaml
  • ci-operator/config/openshift-knative/kn-plugin-event/openshift-knative-kn-plugin-event-release-1.22__422.yaml
  • ci-operator/config/openshift-knative/kn-plugin-event/openshift-knative-kn-plugin-event-release-next__422.yaml
  • ci-operator/config/openshift-knative/kn-plugin-func/openshift-knative-kn-plugin-func-release-v1.17__422.yaml
  • ci-operator/config/openshift-knative/kn-plugin-func/openshift-knative-kn-plugin-func-release-v1.17__50.yaml
  • ci-operator/config/openshift-knative/kn-plugin-func/openshift-knative-kn-plugin-func-release-v1.21__422.yaml
  • ci-operator/config/openshift-knative/net-istio/openshift-knative-net-istio-release-v1.17__422.yaml
  • ci-operator/config/openshift-knative/net-istio/openshift-knative-net-istio-release-v1.17__50.yaml
  • ci-operator/config/openshift-knative/net-istio/openshift-knative-net-istio-release-v1.21__422.yaml
  • ci-operator/config/openshift-knative/net-istio/openshift-knative-net-istio-release-v1.21__50.yaml
  • ci-operator/config/openshift-knative/net-istio/openshift-knative-net-istio-release-v1.22__422.yaml
  • ci-operator/config/openshift-knative/net-istio/openshift-knative-net-istio-release-v1.22__50.yaml
  • ci-operator/config/openshift-knative/net-kourier/openshift-knative-net-kourier-release-v1.17__422.yaml
  • ci-operator/config/openshift-knative/net-kourier/openshift-knative-net-kourier-release-v1.17__50.yaml
  • ci-operator/config/openshift-knative/net-kourier/openshift-knative-net-kourier-release-v1.21__422.yaml
  • ci-operator/config/openshift-knative/net-kourier/openshift-knative-net-kourier-release-v1.21__50.yaml
  • ci-operator/config/openshift-knative/net-kourier/openshift-knative-net-kourier-release-v1.22__422.yaml
  • ci-operator/config/openshift-knative/net-kourier/openshift-knative-net-kourier-release-v1.22__50.yaml
  • ci-operator/config/openshift-knative/serverless-operator/openshift-knative-serverless-operator-main__4.22-techpreview.yaml
  • ci-operator/config/openshift-knative/serverless-operator/openshift-knative-serverless-operator-main__422-aws-ovn.yaml
  • ci-operator/config/openshift-knative/serverless-operator/openshift-knative-serverless-operator-main__422-azure.yaml
  • ci-operator/config/openshift-knative/serverless-operator/openshift-knative-serverless-operator-main__422-gcp.yaml
  • ci-operator/config/openshift-knative/serverless-operator/openshift-knative-serverless-operator-main__422-hypershift.yaml
  • ci-operator/config/openshift-knative/serverless-operator/openshift-knative-serverless-operator-main__422-single-node.yaml
  • ci-operator/config/openshift-knative/serverless-operator/openshift-knative-serverless-operator-main__422-vsphere.yaml
  • ci-operator/config/openshift-knative/serverless-operator/openshift-knative-serverless-operator-main__422.yaml
  • ci-operator/config/openshift-knative/serverless-operator/openshift-knative-serverless-operator-main__50.yaml
  • ci-operator/config/openshift-knative/serverless-operator/openshift-knative-serverless-operator-release-1.37__422.yaml
  • ci-operator/config/openshift-knative/serverless-operator/openshift-knative-serverless-operator-release-1.37__50.yaml
  • ci-operator/config/openshift-knative/serverless-operator/openshift-knative-serverless-operator-release-1.37__ocp-5.0-lpGA-lp-ocp-compat.yaml
  • ci-operator/config/openshift-knative/serving/openshift-knative-serving-release-v1.17__422.yaml
  • ci-operator/config/openshift-knative/serving/openshift-knative-serving-release-v1.17__50.yaml
  • ci-operator/config/openshift-knative/serving/openshift-knative-serving-release-v1.21__422.yaml
  • ci-operator/config/openshift-knative/serving/openshift-knative-serving-release-v1.21__50.yaml
💤 Files with no reviewable changes (2)
  • ci-operator/config/openshift-knative/eventing-istio/openshift-knative-eventing-istio-release-v1.17__421.yaml
  • ci-operator/config/openshift-knative/eventing-kafka-broker/openshift-knative-eventing-kafka-broker-release-v1.17__421.yaml

from: src
to: knative-backstage-plugins-source-image
run_if_changed: ^non-existing$
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Tighten the skip regex before it skips unrelated paths.

The leading . in .tekton, .konflux, .github, and rpms.lock.yaml is currently a wildcard, and .*\.md is not end-anchored.

Proposed fix
-  skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
+  skip_if_only_changed: ^\.tekton/.*|^\.konflux.*|^\.github/.*|^rpms\.lock\.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md$
📝 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
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
skip_if_only_changed: ^\.tekton/.*|^\.konflux.*|^\.github/.*|^rpms\.lock\.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md$
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@ci-operator/config/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.17__422.yaml`
at line 27, The skip_if_only_changed pattern is too broad because the leading
dot in the hidden directories is treated as a wildcard and the markdown match is
not end-anchored. Update the regex in the release config to escape the literal
dots for .tekton, .konflux, and .github, and anchor the markdown rule so it only
matches files ending in .md. Keep the existing behavior for the hack, OWNERS,
and rpms.lock.yaml paths while tightening the matching in this configuration
key.

from: src
to: knative-backstage-plugins-source-image
run_if_changed: ^non-existing$
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Tighten the skip regex before it skips unrelated paths.

The leading . in .tekton, .konflux, .github, and rpms.lock.yaml is currently a wildcard, and .*\.md is not end-anchored.

Proposed fix
-  skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
+  skip_if_only_changed: ^\.tekton/.*|^\.konflux.*|^\.github/.*|^rpms\.lock\.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md$
📝 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
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
skip_if_only_changed: ^\.tekton/.*|^\.konflux.*|^\.github/.*|^rpms\.lock\.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md$
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@ci-operator/config/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.21__422.yaml`
at line 27, The skip_if_only_changed pattern is too broad because the leading
dots in .tekton, .konflux, and .github are acting as wildcards, and the markdown
matcher is not anchored to the end. Update the regex in the release config entry
to escape the literal dots for those path prefixes and tighten the markdown rule
so it only matches files ending in .md, keeping the rest of the skip logic in
the same pattern.

from: src
to: knative-backstage-plugins-source-image
run_if_changed: ^non-existing$
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Tighten the skip regex before it skips unrelated paths.

The leading . in .tekton, .konflux, .github, and rpms.lock.yaml is currently a wildcard, and .*\.md is not end-anchored.

Proposed fix
-  skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
+  skip_if_only_changed: ^\.tekton/.*|^\.konflux.*|^\.github/.*|^rpms\.lock\.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md$
📝 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
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
skip_if_only_changed: ^\.tekton/.*|^\.konflux.*|^\.github/.*|^rpms\.lock\.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md$
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@ci-operator/config/openshift-knative/backstage-plugins/openshift-knative-backstage-plugins-release-v1.22__422.yaml`
at line 27, The skip_if_only_changed pattern is too broad because the leading
dot in the .tekton, .konflux, and .github path checks is acting as a wildcard,
and the markdown matcher is not anchored. Update the regex in the release config
to escape those literal dot-prefixed directories/files and tighten the markdown
match so it only skips .md files, using the skip_if_only_changed entry as the
target to adjust.

from: src
to: knative-client-source-image
run_if_changed: ^non-existing$
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Move the job filter out of images.

Line 73 is indented under images, so the intended root-level skip_if_only_changed is parsed as images.skip_if_only_changed instead of a CI job property.

Proposed fix
-  skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
+skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
📝 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
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.17__422.yaml`
at line 73, The root-level job filter is currently nested under images, so move
skip_if_only_changed out of the images block in the
openshift-knative-client-release-v1.17 configuration. Keep the setting at the
top level alongside the CI job fields so it is parsed as a job property rather
than images.skip_if_only_changed, and verify the images section only contains
image-related keys.

from: src
to: knative-client-source-image
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
run_if_changed: ^non-existing$

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Move run_if_changed out of images.

Line 73 is nested under images, so the gate is parsed as images.run_if_changed rather than a CI job property; with always_run: false, that can change when the presubmit is triggered.

Proposed fix
-  run_if_changed: ^non-existing$
+run_if_changed: ^non-existing$
📝 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
run_if_changed: ^non-existing$
run_if_changed: ^non-existing$
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.17__50.yaml`
at line 73, The presubmit trigger configuration is nested incorrectly under the
images block, so run_if_changed is being treated as images.run_if_changed
instead of a job-level setting. Move run_if_changed out of the images section in
the affected config so it is parsed as a CI job property alongside always_run
and the other top-level presubmit fields.

from: src
to: knative-client-source-image
run_if_changed: ^non-existing$
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Move the job filter out of images.

Line 73 is indented under images, so the intended root-level skip_if_only_changed is parsed as images.skip_if_only_changed instead of a CI job property.

Proposed fix
-  skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
+skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
📝 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
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.21__422.yaml`
at line 73, The `skip_if_only_changed` setting is nested under `images` in the
release config, so it is being parsed as an image-level field instead of a
top-level CI job filter. Move `skip_if_only_changed` out to the root of the
config in the `openshift-knative-client-release-v1.21__422.yaml` definition so
it applies to the job itself, and keep the existing regex value unchanged.

from: src
to: knative-client-source-image
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
run_if_changed: ^non-existing$

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Move run_if_changed out of images.

Line 73 is nested under images, so the gate is parsed as images.run_if_changed rather than a CI job property; with always_run: false, that can change when the presubmit is triggered.

Proposed fix
-  run_if_changed: ^non-existing$
+run_if_changed: ^non-existing$
📝 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
run_if_changed: ^non-existing$
run_if_changed: ^non-existing$
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.21__50.yaml`
at line 73, The presubmit gate is being parsed as images.run_if_changed because
run_if_changed is nested under images, so move run_if_changed to the top-level
job configuration alongside always_run in the
openshift-knative-client-release-v1.21__50.yaml config. Update the job stanza
for the relevant CI definition so the trigger condition is applied as a CI job
property rather than an image field.

from: src
to: knative-client-source-image
skip_if_only_changed: ^.tekton/.*|^.konflux.*|^.github/.*|^rpms.lock.yaml$|^hack/(lib$|[^l].*|l[^i].*|li[^b].*|lib[^/].*)|^OWNERS.*|.*\.md
run_if_changed: ^non-existing$

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Move run_if_changed out of images.

Line 83 is nested under images, so the gate is parsed as images.run_if_changed rather than a CI job property; with always_run: false, that can change when the presubmit is triggered.

Proposed fix
-  run_if_changed: ^non-existing$
+run_if_changed: ^non-existing$
📝 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
run_if_changed: ^non-existing$
run_if_changed: ^non-existing$
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@ci-operator/config/openshift-knative/client/openshift-knative-client-release-v1.22__50.yaml`
at line 83, Move the run_if_changed gate out of the images block so it is
treated as the presubmit job-level setting instead of images.run_if_changed.
Update the relevant job definition in the release config so the gate sits
alongside the other top-level presubmit fields (for the same job that currently
contains always_run), preserving the intended trigger behavior when always_run
is false.

cpu: 300m
memory: 300Mi
timeout: 20m0s
- ref: ipi-deprovision-deprovision

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Inspect the ipi-aws workflow and deprovision references without executing repo code.
fd -i 'ipi-aws.*workflow.*ya?ml|ipi-deprovision.*ya?ml' ci-operator/step-registry --exec sh -c '
  echo "===== $1 ====="
  sed -n "1,180p" "$1"
' sh {}

Repository: openshift/release

Length of output: 32266


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== target config around lines 320-430 =="
sed -n '320,430p' ci-operator/config/openshift-knative/serving/openshift-knative-serving-release-v1.17__50.yaml

echo
echo "== ipi-aws post chain =="
fd -a 'ipi-aws-post*' ci-operator/step-registry | while read -r f; do
  echo "===== $f ====="
  sed -n '1,220p' "$f"
done

echo
echo "== deprovision chain =="
sed -n '1,120p' ci-operator/step-registry/ipi/deprovision/ipi-deprovision-chain.yaml

Repository: openshift/release

Length of output: 7445


Remove the duplicate deprovision stepworkflow: ipi-aws already runs chain: ipi-deprovision, which includes ref: ipi-deprovision-deprovision, so this extra ref will tear down the cluster twice and can make cleanup flaky.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@ci-operator/config/openshift-knative/serving/openshift-knative-serving-release-v1.17__50.yaml`
at line 339, The release job configuration includes a duplicate deprovision ref
that is already covered by the ipi-aws workflow through chain: ipi-deprovision,
so remove the extra ipi-deprovision-deprovision entry from this config. Update
the YAML around the affected job definition so only the workflow-provided
cleanup remains, and keep the rest of the ipi-aws setup unchanged.

@openshift-ci

openshift-ci Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

@maschmid: 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/rehearse/openshift-knative/serverless-operator/main/50-operator-e2e 0781fb3 link unknown /pj-rehearse pull-ci-openshift-knative-serverless-operator-main-50-operator-e2e
ci/rehearse/openshift-knative/serverless-operator/main/422-operator-e2e 0781fb3 link unknown /pj-rehearse pull-ci-openshift-knative-serverless-operator-main-422-operator-e2e
ci/rehearse/periodic-ci-openshift-knative-serverless-operator-release-1.37-ocp-5.0-lpGA-lp-ocp-compat-cr--operator-e2e--aws 0781fb3 link unknown /pj-rehearse periodic-ci-openshift-knative-serverless-operator-release-1.37-ocp-5.0-lpGA-lp-ocp-compat-cr--operator-e2e--aws

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.

@maschmid maschmid closed this Jul 9, 2026
@maschmid
maschmid deleted the sync-serverless-ci branch July 9, 2026 06:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant