Skip to content

CNF-22982: Update ci for recert#79046

Open
fontivan wants to merge 2 commits intoopenshift:mainfrom
fontivan:sskeard/cnf-22982-update-ci-triggers-recert
Open

CNF-22982: Update ci for recert#79046
fontivan wants to merge 2 commits intoopenshift:mainfrom
fontivan:sskeard/cnf-22982-update-ci-triggers-recert

Conversation

@fontivan
Copy link
Copy Markdown
Contributor

@fontivan fontivan commented May 8, 2026

  • update the ci jobs to not trigger if the changes are trivial or unrelated (gitignore, tekton, konflux, owners, markdown, license)
  • update image root for main to be OCP 5.0

Assisted-by: Cursor/auto
AI-attribution: AIA,Primarily AI-generated,Human-initiated,Reviewed,Cursor/auto,v1.0
For more information on AI attribution statements, see: https://aiattribution.github.io/

This PR updates the CI configuration for the recert component across all active release branches (4.14 through 4.22, plus main and v0) to prevent unnecessary CI job executions for trivial, non-code changes.

Primary Changes:

  1. Skip trivial file changes: Added a standardized skip_if_only_changed regex pattern to test job definitions across all recert CI configuration files. This pattern excludes runs when changes affect only non-functional files such as .gitignore, .tekton/, .konflux/, Markdown files, OWNERS/OWNERS_ALIASES, and LICENSE. The pattern is applied consistently to multiple job types including cargo-based tests (check, test, clippy), E2E serial/parallel tests, baremetalds tests, and infrastructure validation flows (IBU, IBI, IPC E2E flows).

  2. Updated OCP version for main: The build image root in the main branch configuration was updated from rhel-9-release-golang-1.22-openshift-4.19 to rhel-9-release-golang-1.25-openshift-5.0, aligning the main branch CI with OCP 5.0 tooling requirements.

Scope:

All changes are isolated to CI operator configuration for the rh-ecosystem-edge/recert component, affecting how Prow triggers test jobs without modifying the underlying code or test logic itself. The same skip pattern is applied uniformly across release branches 4.14, 4.16, 4.18, 4.19, 4.20, 4.21, 4.22, main, and v0, ensuring consistent CI behavior across branches.

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

openshift-ci-robot commented May 8, 2026

@fontivan: This pull request references CNF-22982 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 sub-task to target the "5.0.0" version, but no target version was set.

Details

In response to this:

  • update the ci jobs to not trigger if the changes are trivial or unrelated (gitignore, tekton, konflux, owners, markdown, license)
  • update image root for main to be OCP 5.0

Assisted-by: Cursor/auto
AI-attribution: AIA,Primarily AI-generated,Human-initiated,Reviewed,Cursor/auto,v1.0 For more information on AI attribution statements, see: https://aiattribution.github.io/

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.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 8, 2026

Warning

Rate limit exceeded

@fontivan has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 37 minutes and 20 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 05e2af07-3040-4bb8-a431-5afa1ab59fd4

📥 Commits

Reviewing files that changed from the base of the PR and between 0c310e5 and 85a1759.

⛔ Files ignored due to path filters (9)
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-main-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.14-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.16-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.18-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.19-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.20-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.21-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.22-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-v0-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (9)
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-main.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.14.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.16.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.18.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.19.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.20.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.21.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.22.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-v0.yaml

Walkthrough

This PR updates CI operator configurations for the recert project by upgrading the build root image from Go 1.22/OpenShift 4.19 to Go 1.25/OpenShift 5.0 in main, and adding a standardized skip_if_only_changed regex pattern across multiple test jobs in all release branches to skip runs when only non-code files are modified.

Changes

CI Configuration Updates

Layer / File(s) Summary
Build Infrastructure
ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-main.yaml
Build root image stream tag updated from rhel-9-release-golang-1.22-openshift-4.19 to rhel-9-release-golang-1.25-openshift-5.0.
Test Skip Pattern Standardization
ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-*.yaml
Multiple test jobs (cargo-check, cargo-test, cargo-clippy, e2e-aws-ovn-single-node-recert-*, baremetalds-sno-recert-cluster-rename, ibu-e2e-flow, ibi-e2e-flow, ipc-e2e-flow) across all release branches (4.14, 4.16, 4.18, 4.19, 4.20, 4.21, 4.22, v0) now include or are updated with `skip_if_only_changed: ^(?:.*/)?(?:.gitignore

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 11 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'CNF-22982: Update ci for recert' is vague and generic, failing to clearly describe the specific changes made to the CI configuration. Consider a more descriptive title that highlights the main changes, such as 'Add skip_if_only_changed filters to recert CI jobs' or 'Update recert CI with skip patterns for non-code changes'.
✅ Passed checks (11 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed This PR modifies CI configuration YAML files only, not Ginkgo test code. The check for stable test names is not applicable to CI job configuration identifiers, which are all static and descriptive.
Test Structure And Quality ✅ Passed Custom check is not applicable. This PR modifies only YAML CI configuration files and contains no Ginkgo test code. The check requires reviewing Ginkgo test quality patterns.
Microshift Test Compatibility ✅ Passed PR modifies only CI config YAML files. No new Ginkgo e2e tests are added, so MicroShift compatibility check is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The PR modifies only CI configuration YAML files and does not add any new Ginkgo e2e tests. The check for SNO test compatibility applies to new test code additions, which are not present in this PR.
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies only CI operator configuration files. No K8s deployment manifests, operator code, or controllers present. Changes are test job config updates, not scheduling constraints.
Ote Binary Stdout Contract ✅ Passed Custom check is not applicable. PR only modifies YAML CI configuration files, not Go source code. The OTE Binary Stdout Contract check applies only to Go test code.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR modifies only CI/pipeline YAML configuration files. No new Ginkgo e2e tests are added. The custom check requirement does not apply.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

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

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@openshift-ci openshift-ci Bot requested review from omertuc and tsorya May 8, 2026 13:56
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 8, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: fontivan
Once this PR has been reviewed and has the lgtm label, please assign omertuc 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

Copy link
Copy Markdown
Contributor

@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.

Caution

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

⚠️ Outside diff range comments (1)
ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-v0.yaml (1)

43-54: ⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

always_run: true and skip_if_only_changed are mutually exclusive — this config will fail validation.

According to the OpenShift CI operator docs, run_if_changed, skip_if_only_changed, and always_run: true are mutually exclusive. Both cargo-check and cargo-clippy set always_run: true while simultaneously specifying skip_if_only_changed, which is an invalid combination that will cause prowgen/ci-operator config validation to reject or misprocess these jobs.

To honour the PR's intent of skipping trivial-only changes, always_run should be flipped to false on both jobs:

🐛 Proposed fix
-- always_run: true
+- always_run: false
   as: cargo-check
   commands: cargo check
   container:
     from: recert-check
   skip_if_only_changed: ^(?:.*/)?(?:\.gitignore|\.tekton/.*|\.konflux/.*|.*\.md|OWNERS|OWNERS_ALIASES|LICENSE)$
-- always_run: true
+- always_run: false
   as: cargo-clippy
   commands: cargo clippy
   container:
     from: recert-check
   skip_if_only_changed: ^(?:.*/)?(?:\.gitignore|\.tekton/.*|\.konflux/.*|.*\.md|OWNERS|OWNERS_ALIASES|LICENSE)$
🤖 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/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-v0.yaml`
around lines 43 - 54, The jobs cargo-check and cargo-clippy currently set
always_run: true while also specifying skip_if_only_changed, which is invalid;
update both job definitions (the blocks identified by "as: cargo-check" and "as:
cargo-clippy") to set always_run: false so they use skip_if_only_changed as
intended and pass ci-operator/prowgen validation.
🧹 Nitpick comments (1)
ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.21.yaml (1)

108-127: 💤 Low value

e2e-aws-ovn-single-node-recert-openshift-e2e-test-qe is missing skip_if_only_changed.

All other always_run: false tests in this file received the new pattern, but this job did not. The practical impact is low since always_run: false means it only runs when manually requested, and skip_if_only_changed cannot suppress a manual /test invocation. Still, adding the pattern would keep it consistent with the rest of the file and with the other release-branch configs.

✏️ Proposed addition for consistency
 - always_run: false
   as: e2e-aws-ovn-single-node-recert-openshift-e2e-test-qe
+  skip_if_only_changed: ^(?:.*/)?(?:\.gitignore|\.tekton/.*|\.konflux/.*|.*\.md|OWNERS|OWNERS_ALIASES|LICENSE)$
   steps:
🤖 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/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.21.yaml`
around lines 108 - 127, Add the missing skip_if_only_changed setting to the job
definition for e2e-aws-ovn-single-node-recert-openshift-e2e-test-qe (the job
with workflow openshift-e2e-aws-single-node-recert); specifically, insert
skip_if_only_changed: true at the same level as
steps/cluster_profile/env/observers/test so the job follows the same pattern
used by other always_run: false jobs in this file and will be skipped when only
non-test files change.
🤖 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.

Outside diff comments:
In
`@ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-v0.yaml`:
- Around line 43-54: The jobs cargo-check and cargo-clippy currently set
always_run: true while also specifying skip_if_only_changed, which is invalid;
update both job definitions (the blocks identified by "as: cargo-check" and "as:
cargo-clippy") to set always_run: false so they use skip_if_only_changed as
intended and pass ci-operator/prowgen validation.

---

Nitpick comments:
In
`@ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.21.yaml`:
- Around line 108-127: Add the missing skip_if_only_changed setting to the job
definition for e2e-aws-ovn-single-node-recert-openshift-e2e-test-qe (the job
with workflow openshift-e2e-aws-single-node-recert); specifically, insert
skip_if_only_changed: true at the same level as
steps/cluster_profile/env/observers/test so the job follows the same pattern
used by other always_run: false jobs in this file and will be skipped when only
non-test files change.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: ff78d537-dc9f-46e1-ba73-2765be9a5d82

📥 Commits

Reviewing files that changed from the base of the PR and between be1c46c and 0c310e5.

⛔ Files ignored due to path filters (9)
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-main-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.14-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.16-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.18-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.19-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.20-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.21-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.22-presubmits.yaml is excluded by !ci-operator/jobs/**
  • ci-operator/jobs/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-v0-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (9)
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-main.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.14.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.16.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.18.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.19.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.20.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.21.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-release-4.22.yaml
  • ci-operator/config/rh-ecosystem-edge/recert/rh-ecosystem-edge-recert-v0.yaml

@fontivan fontivan force-pushed the sskeard/cnf-22982-update-ci-triggers-recert branch from 0c310e5 to 00a924a Compare May 8, 2026 14:08
@fontivan
Copy link
Copy Markdown
Contributor Author

fontivan commented May 8, 2026

/pj-rehearse max

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@fontivan
Copy link
Copy Markdown
Contributor Author

fontivan commented May 8, 2026

/cc @by2waysprojects

@openshift-ci openshift-ci Bot requested a review from by2waysprojects May 8, 2026 14:12
fontivan added 2 commits May 8, 2026 12:24
- update the ci jobs to not trigger if the changes are trivial or unrelated (gitignore, tekton, konflux, owners, markdown, license)
- update image root for main to be OCP 5.0
Assisted-by: Cursor/auto
AI-attribution: AIA,Primarily AI-generated,Human-initiated,Reviewed,Cursor/auto,v1.0
For more information on AI attribution statements, see: https://aiattribution.github.io/
- the renovate.json file should not cause any prow tests to run as it is only used for Mintmaker configuration

Assisted-by: Cursor/auto
AI-attribution: AIA,Primarily AI-generated,Human-initiated,Reviewed,Cursor/auto,v1.0
For more information on AI attribution statements, see: https://aiattribution.github.io/
@fontivan fontivan force-pushed the sskeard/cnf-22982-update-ci-triggers-recert branch from 00a924a to 85a1759 Compare May 8, 2026 16:24
@fontivan
Copy link
Copy Markdown
Contributor Author

fontivan commented May 8, 2026

/cc @danmanor

@openshift-ci openshift-ci Bot requested a review from danmanor May 8, 2026 16:25
@fontivan
Copy link
Copy Markdown
Contributor Author

fontivan commented May 8, 2026

/pj-rehearse

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@fontivan
Copy link
Copy Markdown
Contributor Author

fontivan commented May 8, 2026

/pj-rehearse auto-ack

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 8, 2026

@fontivan: 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/rh-ecosystem-edge/recert/main/e2e-aws-ovn-single-node-recert-openshift-e2e-test-qe 85a1759 link unknown /pj-rehearse pull-ci-rh-ecosystem-edge-recert-main-e2e-aws-ovn-single-node-recert-openshift-e2e-test-qe
ci/rehearse/rh-ecosystem-edge/recert/release-4.22/ibu-e2e-flow 00a924a link unknown /pj-rehearse pull-ci-rh-ecosystem-edge-recert-release-4.22-ibu-e2e-flow
ci/rehearse/rh-ecosystem-edge/recert/main/baremetalds-sno-recert-cluster-rename 85a1759 link unknown /pj-rehearse pull-ci-rh-ecosystem-edge-recert-main-baremetalds-sno-recert-cluster-rename

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

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants