Skip to content

wmco: Don't run the presubmit images job on konflux updates#77980

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
jrvaldes:skip_image_job_if_only_changed
Apr 17, 2026
Merged

wmco: Don't run the presubmit images job on konflux updates#77980
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
jrvaldes:skip_image_job_if_only_changed

Conversation

@jrvaldes
Copy link
Copy Markdown
Contributor

@jrvaldes jrvaldes commented Apr 17, 2026

This pull request updates the skip_if_only_changed patterns for both image build and presubmit job configurations across all Windows Machine Config Operator (WMCO) CI and release branches. The main goal is to ensure that CI jobs are skipped when only non-functional files (like documentation, configuration, or ownership files) are changed, with the exclusion pattern expanded to cover more directories and files.

These changes help reduce unnecessary CI job runs on trivial changes, improving CI efficiency and developer experience.

Summary by CodeRabbit

  • Chores
    • Updated CI build configurations across release branches to skip builds when changes are limited to documentation, GitHub workflows, Tekton pipeline configurations, and container-related files.

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Apr 17, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 17, 2026

Walkthrough

Updated skip_if_only_changed regex patterns across 10 YAML CI configuration and job files to broaden the scope of path-based triggers. Changes now skip builds when only documentation, GitHub workflow, and Tekton configuration directories are modified, plus when only specific files (renovate.json, Containerfile, Containerfile.bundle) are changed, expanding from a narrower previous pattern.

Changes

Cohort / File(s) Summary
Master branch
ci-operator/config/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-master.yaml, ci-operator/jobs/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-master-presubmits.yaml
Updated skip_if_only_changed regex to match docs/, .github/, .tekton/ directories and added renovate.json, Containerfile, Containerfile.bundle to ignored files.
Release 4.22 branch
ci-operator/config/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-4.22.yaml, ci-operator/jobs/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-4.22-presubmits.yaml
Updated skip_if_only_changed regex to match docs/, .github/, .tekton/ directories and added renovate.json, Containerfile, Containerfile.bundle to ignored files.
Release 4.23 branch
ci-operator/config/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-4.23.yaml, ci-operator/jobs/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-4.23-presubmits.yaml
Updated skip_if_only_changed regex to match docs/, .github/, .tekton/ directories and added renovate.json, Containerfile, Containerfile.bundle to ignored files.
Release 5.0 branch
ci-operator/config/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-5.0.yaml, ci-operator/jobs/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-5.0-presubmits.yaml
Updated skip_if_only_changed regex to match docs/, .github/, .tekton/ directories and added renovate.json, Containerfile, Containerfile.bundle to ignored files.
Release 5.1 branch
ci-operator/config/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-5.1.yaml, ci-operator/jobs/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-5.1-presubmits.yaml
Updated skip_if_only_changed regex to match docs/, .github/, .tekton/ directories and added renovate.json, Containerfile, Containerfile.bundle to ignored files.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

🚥 Pre-merge checks | ✅ 9 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Topology-Aware Scheduling Compatibility ❓ Inconclusive Unable to execute shell commands to examine PR files; cannot verify scheduling constraints or topology account. Provide the actual PR diff, modified file contents, or specific scheduling configuration details for assessment.
✅ Passed checks (9 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'wmco: Don't run the presubmit images job on konflux updates' clearly describes the main objective of the pull request: preventing CI image job runs when only konflux/configuration updates occur.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Stable And Deterministic Test Names ✅ Passed Pull request modifies only YAML CI configuration files, not Ginkgo test code.
Test Structure And Quality ✅ Passed The custom check is not applicable to this pull request because it only modifies CI operator configuration YAML files without any Ginkgo test code.
Microshift Test Compatibility ✅ Passed This pull request does not add any new Ginkgo e2e tests. The changes exclusively modify YAML configuration files in the ci-operator directories to update skip_if_only_changed regex patterns for existing CI build and presubmit jobs.
Single Node Openshift (Sno) Test Compatibility ✅ Passed Pull request modifies only CI/CD configuration files (YAML) with skip_if_only_changed patterns. No new Ginkgo e2e tests are added.
Ote Binary Stdout Contract ✅ Passed The custom check 'OTE Binary Stdout Contract' is designed to detect stdout contract violations in Go test binaries and process-level code. This PR modifies only CI/CD YAML configuration files in regex patterns for job triggering. No Go source code, test code, or executable code is modified.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed This PR modifies only CI/CD configuration YAML files and does not add any new Ginkgo e2e test code.

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

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

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

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@jrvaldes: 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-windows-machine-config-operator-release-4.22-aws-e2e-operator openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.22-azure-e2e-operator openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.22-azure-e2e-upgrade openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.22-ci-bundle-wmco-bundle openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.22-gcp-e2e-operator openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.22-images openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.22-lint openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.22-nutanix-e2e-operator openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.22-platform-none-vsphere-e2e-operator openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.22-security openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.22-unit openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.22-vsphere-disconnected-e2e-operator openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.22-vsphere-e2e-operator openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.22-vsphere-proxy-e2e-operator openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.22-wicd-unit-vsphere openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.23-aws-e2e-operator openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.23-azure-e2e-operator openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.23-azure-e2e-upgrade openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.23-ci-bundle-wmco-bundle openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.23-gcp-e2e-operator openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.23-images openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.23-lint openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.23-nutanix-e2e-operator openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.23-platform-none-vsphere-e2e-operator openshift/windows-machine-config-operator presubmit Ci-operator config changed
pull-ci-openshift-windows-machine-config-operator-release-4.23-security openshift/windows-machine-config-operator presubmit Ci-operator config changed

A total of 89 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.

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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@ci-operator/config/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-master.yaml`:
- Line 22: The skip_if_only_changed regex contains an unescaped dot in
"Containerfile.bundle" which allows unintended matches; update the
"skip_if_only_changed" pattern string to use "Containerfile\.bundle" (escape the
dot) wherever that exact token appears in this WMCO presubmit/config set so it
matches only the literal filename, and apply the same substitution across all
modified WMCO config and presubmit files.
🪄 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: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 05ec74d4-48d1-4004-aa6a-6fc2c2026eec

📥 Commits

Reviewing files that changed from the base of the PR and between 5463534 and b1e8abd.

📒 Files selected for processing (10)
  • ci-operator/config/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-master.yaml
  • ci-operator/config/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-4.22.yaml
  • ci-operator/config/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-4.23.yaml
  • ci-operator/config/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-5.0.yaml
  • ci-operator/config/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-5.1.yaml
  • ci-operator/jobs/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-master-presubmits.yaml
  • ci-operator/jobs/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-4.22-presubmits.yaml
  • ci-operator/jobs/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-4.23-presubmits.yaml
  • ci-operator/jobs/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-5.0-presubmits.yaml
  • ci-operator/jobs/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-release-5.1-presubmits.yaml

- dockerfile_path: build/Dockerfile.ci
to: windows-machine-config-operator-test
skip_if_only_changed: ^docs/|\.md$|^(?:.*/)?(?:\.gitignore|OWNERS|PROJECT|LICENSE)$
skip_if_only_changed: ^(?:docs|\.github|\.tekton)/|\.md$|^(?:\.gitignore|renovate\.json|OWNERS|PROJECT|LICENSE|Containerfile|Containerfile.bundle)$
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.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# 1) Find all occurrences that still use unescaped Containerfile.bundle in skip_if_only_changed
rg -nF 'skip_if_only_changed:' | rg -nF 'Containerfile.bundle'

# 2) Quick behavior check (regex dot wildcard effect)
python - <<'PY'
import re
pat = r'^(?:docs|\.github|\.tekton)/|\.md$|^(?:\.gitignore|renovate\.json|OWNERS|PROJECT|LICENSE|Containerfile|Containerfile.bundle)$'
for s in ["Containerfile.bundle", "ContainerfileXbundle", "Containerfile/bundle"]:
    print(f"{s:25} -> {bool(re.match(pat, s))}")
PY

Repository: openshift/release

Length of output: 50374


🏁 Script executed:

python3 << 'PY'
import re

# Pattern with unescaped dot (current/incorrect)
pat_unescaped = r'^(?:docs|\.github|\.tekton)/|\.md$|^(?:\.gitignore|renovate\.json|OWNERS|PROJECT|LICENSE|Containerfile|Containerfile.bundle)$'

# Pattern with escaped dot (proposed fix)
pat_escaped = r'^(?:docs|\.github|\.tekton)/|\.md$|^(?:\.gitignore|renovate\.json|OWNERS|PROJECT|LICENSE|Containerfile|Containerfile\.bundle)$'

test_cases = [
    "Containerfile.bundle",    # should match both
    "ContainerfileXbundle",    # should match unescaped, NOT escaped
    "Containerfile/bundle",    # should NOT match either
]

print("UNESCAPED DOT (current - INCORRECT):")
for s in test_cases:
    result = bool(re.match(pat_unescaped, s))
    print(f"  {s:25} -> {result}")

print("\nESCAPED DOT (proposed fix - CORRECT):")
for s in test_cases:
    result = bool(re.match(pat_escaped, s))
    print(f"  {s:25} -> {result}")
PY

Repository: openshift/release

Length of output: 354


Escape the dot in Containerfile.bundle for exact filename matching.

At Line 22, the unescaped dot in Containerfile.bundle matches unintended filenames (e.g., ContainerfileXbundle, Containerfile/bundle). Use Containerfile\.bundle instead.

Proposed fix
-  skip_if_only_changed: ^(?:docs|\.github|\.tekton)/|\.md$|^(?:\.gitignore|renovate\.json|OWNERS|PROJECT|LICENSE|Containerfile|Containerfile.bundle)$
+  skip_if_only_changed: ^(?:docs|\.github|\.tekton)/|\.md$|^(?:\.gitignore|renovate\.json|OWNERS|PROJECT|LICENSE|Containerfile|Containerfile\.bundle)$

Apply this fix to all identical patterns in the other modified WMCO config/presubmit files.

📝 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: ^(?:docs|\.github|\.tekton)/|\.md$|^(?:\.gitignore|renovate\.json|OWNERS|PROJECT|LICENSE|Containerfile|Containerfile.bundle)$
skip_if_only_changed: ^(?:docs|\.github|\.tekton)/|\.md$|^(?:\.gitignore|renovate\.json|OWNERS|PROJECT|LICENSE|Containerfile|Containerfile\.bundle)$
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@ci-operator/config/openshift/windows-machine-config-operator/openshift-windows-machine-config-operator-master.yaml`
at line 22, The skip_if_only_changed regex contains an unescaped dot in
"Containerfile.bundle" which allows unintended matches; update the
"skip_if_only_changed" pattern string to use "Containerfile\.bundle" (escape the
dot) wherever that exact token appears in this WMCO presubmit/config set so it
matches only the literal filename, and apply the same substitution across all
modified WMCO config and presubmit files.

@mansikulkarni96
Copy link
Copy Markdown
Member

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Apr 17, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 17, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jrvaldes, mansikulkarni96

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

@jrvaldes
Copy link
Copy Markdown
Contributor Author

/pj-rehearse ack

@openshift-merge-bot
Copy link
Copy Markdown
Contributor

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

@openshift-merge-bot openshift-merge-bot Bot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Apr 17, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 17, 2026

@jrvaldes: all tests passed!

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.

@openshift-merge-bot openshift-merge-bot Bot merged commit 5130643 into openshift:main Apr 17, 2026
16 checks passed
@jrvaldes jrvaldes deleted the skip_image_job_if_only_changed branch April 20, 2026 13:00
HarshwardhanPatil07 pushed a commit to HarshwardhanPatil07/release that referenced this pull request Apr 23, 2026
Prucek pushed a commit to Prucek/release that referenced this pull request Apr 29, 2026
BATMAN-JD pushed a commit to BATMAN-JD/release that referenced this pull request May 1, 2026
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. lgtm Indicates that a PR is ready to be merged. rehearsals-ack Signifies that rehearsal jobs have been acknowledged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants