Skip to content

bmctest: added optional presubmit - #83024

Open
tdomnesc wants to merge 1 commit into
openshift:mainfrom
tdomnesc:bmctest-presubmit
Open

bmctest: added optional presubmit#83024
tdomnesc wants to merge 1 commit into
openshift:mainfrom
tdomnesc:bmctest-presubmit

Conversation

@tdomnesc

@tdomnesc tdomnesc commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

add openshift server test run as optional presubmit

Summary by CodeRabbit

Adds an optional, disabled-by-default OpenShift 4.22 presubmit for bmctest.

The test uses the equinix-ocp-metal cluster profile and lab-small cluster type. It acquires a cluster, runs bmctest-openshift, and releases the cluster after testing.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

Added a disabled-by-default test-openshift-4-22 workflow. The workflow uses the equinix-ocp-metal profile and lab-small cluster type, then acquires, tests, and releases the cluster.

Changes

OpenShift 4.22 BMC test

Layer / File(s) Summary
OpenShift 4.22 test workflow
ci-operator/config/openshift-metal3/bmctest/openshift-metal3-bmctest-main.yaml
Adds the test-openshift-4-22 workflow with cluster settings, ofcir-acquire, bmctest-openshift, and ofcir-release steps. The workflow does not run by default.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 14 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Ipv6 And Disconnected Network Test Compatibility ⚠️ Warning The new presubmit runs bmctest-openshift, which installs packages and clones https://github.com/openshift-metal3/bmctest in its test command. Run the IPv6 job /payload-job periodic-ci-openshift-release-master-nightly-4.22-e2e-metal-ipi-ovn-ipv6; use internal mirrors or mark this test [Skipped:Disconnected].
✅ Passed checks (14 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding an optional presubmit for bmctest.
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 The PR adds static CI names (test-openshift-4-22) and fixed release 4.22; no Ginkgo title calls or dynamic values appear in the changed files.
Test Structure And Quality ✅ Passed PASS: The commit changes only CI YAML and generated presubmit YAML; it adds no Ginkgo It blocks or cluster-test code for these requirements to review.
Microshift Test Compatibility ✅ Passed The PR adds only CI YAML for an optional job; it adds no Ginkgo tests or It/Describe/Context/When declarations, and bmctest-openshift is an existing step.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The patch adds only two YAML CI files and no Ginkgo declarations; it invokes the existing bmctest-openshift step, which clones and runs an external repository.
Topology-Aware Scheduling Compatibility ✅ Passed The patch only adds a CI test definition and generated Prow job; it adds no deployment, controller, replica, affinity, topology spread, node selection, toleration, or PDB constraints.
Ote Binary Stdout Contract ✅ Passed The PR adds only YAML and generated Prow wiring; its step runs shell-based ocpbmctest.sh, with no openshift-tests/OTE binary or process-level stdout code in the changed path.
No-Weak-Crypto ✅ Passed The patch changes only YAML test and presubmit wiring. Added content contains no MD5, SHA1, DES, RC4, Blowfish, ECB, crypto implementation, or secret comparison.
Container-Privileges ✅ Passed The added config and generated job contain no privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, allowPrivilegeEscalation, or root-user settings; intranet is only a scheduling capability label.
No-Sensitive-Data-In-Logs ✅ Passed The PR adds test and presubmit configuration only; added lines contain no logging commands or sensitive values, and referenced scripts were not modified.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@openshift-ci

openshift-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: tdomnesc

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

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 6, 2026

@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: 1

🤖 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-metal3/bmctest/openshift-metal3-bmctest-main.yaml`:
- Around line 35-36: Update the test-openshift-4-22 presubmit configuration to
set optional: true, making the manually triggered job non-blocking while
preserving its existing triggering behavior.
🪄 Autofix

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: Pro Plus

Run ID: 8dff350c-2147-4d82-9b4a-44eabf3c9f9e

📥 Commits

Reviewing files that changed from the base of the PR and between eb58676 and d5204cd.

⛔ Files ignored due to path filters (1)
  • ci-operator/jobs/openshift-metal3/bmctest/openshift-metal3-bmctest-main-presubmits.yaml is excluded by !ci-operator/jobs/**
📒 Files selected for processing (1)
  • ci-operator/config/openshift-metal3/bmctest/openshift-metal3-bmctest-main.yaml

Comment on lines +35 to +36
- always_run: false
as: test-openshift-4-22

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 | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Repository files around target config:"
git ls-files | rg '(^|/)openshift-metal3-bmctest-main\.ya?ml$|ci-operator/config/openshift-metal3/bmctest|zz_generated_metadata' || true

echo
echo "Target config excerpt:"
if [ -f ci-operator/config/openshift-metal3/bmctest/openshift-metal3-bmctest-main.yaml ]; then
  cat -n ci-operator/config/openshift-metal3/bmctest/openshift-metal3-bmctest-main.yaml | sed -n '1,140p'
fi

echo
echo "Search for optional/always_run patterns in same repo/config family:"
rg -n '^\s*(optional|always_run):\s*|ProwJob|presubmit|postsubmit' ci-operator/config/openshift-metal3 || true

Repository: openshift/release

Length of output: 3476


🌐 Web query:

ci-operator test configuration optional always_run nonblocking meaning Openshift CI

💡 Result:

In OpenShift CI, the ci-operator configuration fields always_run and optional control how and when automated tests are executed and whether they gate the merging of pull requests [1][2]. always_run This field determines if a test is triggered automatically for every pull request [1][3]. - When set to true (default), the test runs on every pull request [1]. - When set to false, the test does not automatically trigger on every PR [1]. This is typically used for tests that only need to run under specific conditions or are intended to be triggered manually [3]. - Note: always_run: true is mutually exclusive with conditional execution fields such as run_if_changed and skip_if_only_changed [1][2]. optional This field determines whether a test result is required for a pull request to be merged [1][3]. - When set to true, the test is non-blocking [1]. Even if the test fails, it does not prevent the pull request from being merged [4]. - When set to false (default), the test is blocking (required) [3][4]. The pull request cannot be merged unless the test passes [3]. In summary, a "nonblocking" test in OpenShift CI is achieved by setting optional: true [1][4]. The always_run field controls the trigger mechanism, and setting it to false is often used in combination with other configurations to ensure tests only run when necessary rather than on every single PR [3].

Citations:


Mark this presubmit as non-blocking.

always_run: false only controls triggering. optional still defaults to false, so a manually triggered test-openshift-4-22 job remains required for merge unless it is made optional.

Proposed change
 - always_run: false
+  optional: true
📝 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
- always_run: false
as: test-openshift-4-22
- always_run: false
optional: true
as: test-openshift-4-22
🤖 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-metal3/bmctest/openshift-metal3-bmctest-main.yaml`
around lines 35 - 36, Update the test-openshift-4-22 presubmit configuration to
set optional: true, making the manually triggered job non-blocking while
preserving its existing triggering behavior.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@tdomnesc: 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-metal3-bmctest-main-test-openshift-4-22 openshift-metal3/bmctest presubmit Presubmit changed

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.

@tdomnesc

tdomnesc commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-openshift-metal3-bmctest-main-test-openshift-4-22

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@tdomnesc

tdomnesc commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-openshift-metal3-bmctest-main-test-openshift-4-22

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@openshift-ci

openshift-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

@tdomnesc: The following test 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-metal3/bmctest/main/test-openshift-4-22 d5204cd link unknown /pj-rehearse pull-ci-openshift-metal3-bmctest-main-test-openshift-4-22

Full PR test history. Your PR dashboard.

Details

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

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant