Skip to content

Remove ROSACLI Report Portal integration - #82252

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
jerichokeyne:remove-rosacli-reportportal
Jul 22, 2026
Merged

Remove ROSACLI Report Portal integration#82252
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
jerichokeyne:remove-rosacli-reportportal

Conversation

@jerichokeyne

@jerichokeyne jerichokeyne commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Summary

  • This is related to this JIRA ticket: https://redhat.atlassian.net/browse/ROSAENG-60403
  • Remove the rosa-tests-report step and all references to it from ROSACLI CI jobs
  • Replace upload_junit_result calls (which tar junit into SHARED_DIR) with a direct cp to ARTIFACT_DIR
  • This fixes jobs failing with Secret "..." is invalid: data: Too long: may not be more than 1048576 bytes when verbose Ginkgo output inflates junit XML beyond the K8s Secret 1 MiB limit
  • Also adds a parameter to strip the stdout and stderr from the junit files to prevent prow from auto censoring the files and potentially replacing the entire file with This file contained potentially sensitive information and has been removed.. I enabled it for the ocm-resources job since that job has been consistently getting censored and the results were not being shown because of that. The other jobs haven't been getting censored, so I've left it disabled to try to keep more info to debug other jobs

Changes

Deleted: ci-operator/step-registry/rosa/tests/report/ (4 files — step ref, commands script, metadata, OWNERS)

Removed rosa-tests-report references from:

  • rosa-tests-pull-request-chain.yaml
  • rosa-tests-e2e-fullcycle-chain.yaml
  • openshift-rosa-master__e2e.yaml (10 inline test definitions)

Replaced upload_junit_result with cp in 7 step scripts:

  • rosa-tests-commands.sh
  • rosa-tests-pull-request-commands.sh
  • rosa-tests-runtime-day1-post-commands.sh
  • rosa-tests-runtime-day2-commands.sh
  • rosa-tests-runtime-destructive-commands.sh
  • rosa-tests-runtime-destroy-commands.sh
  • rosa-tests-runtime-destroy-post-commands.sh

Test plan

  • Verify make update passes cleanly (done locally)
  • Verify pj-rehearse passes for affected jobs
  • Confirm junit XML appears in GCS artifacts for a test run after merge

Made with Cursor

Summary by CodeRabbit

  • Removes the ROSACLI Report Portal integration from OpenShift ROSA CI by deleting the rosa-tests-report step and removing it from the ROSA e2e fullcycle and ROSA pull-request chain definitions (openshift-rosa-master__e2e.yaml plus the corresponding chain YAMLs).
  • Updates ROSA CI JUnit artifact handling to avoid Kubernetes Secret size-limit failures caused by verbose JUnit XML (e.g., Ginkgo output):
    • Replaces upload_junit_result with direct cp of ${JUNIT_XML} into ${ARTIFACT_DIR} in the main rosa-tests step and runtime step scripts (day1-post, day2, destroy, destroy-post, destructive), plus the PR variant (rosa-tests-pull-request-commands.sh).
    • Adds optional JUnit sanitization via STRIP_JUNIT_OUTPUT (default "false"). When set to "true", ${JUNIT_XML} is rewritten to remove <system-out> / <system-err> before copying to ${ARTIFACT_DIR}; the rosa-ocm-resources-f3 job enables this flag.
  • Cleans up the deleted report step’s registry assets: removes the rosa-tests-report command script and its step/ref/metadata definitions, and clears the associated OWNERS linkage.

Work to verify:

  • make update passed locally; pj-rehearse validation and post-merge GCS artifact confirmation remain pending. pj-rehearse was requested three times for periodic-ci-openshift-rosa-master-e2e-rosa-ocm-resources-f3.

@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

ROSA test commands now copy JUnit XML directly to the artifact directory, optionally strip output sections, preserve test exit status, and remove the standalone report step from chains, job references, and its step-registry definition.

Changes

ROSA JUnit artifact flow

Layer / File(s) Summary
Direct JUnit artifact handling
ci-operator/step-registry/rosa/tests/..., ci-operator/step-registry/rosa/tests/runtime/...
Test and runtime scripts replace upload_junit_result with direct copies of ${JUNIT_XML} into ${ARTIFACT_DIR}; optional stripping removes <system-out> and <system-err>, while the main test command preserves its exit status.
Remove report-step wiring
ci-operator/config/openshift/rosa/openshift-rosa-master__e2e.yaml, ci-operator/step-registry/rosa/tests/e2e/..., ci-operator/step-registry/rosa/tests/pull-request/..., ci-operator/step-registry/rosa/tests/report/*
Ten ROSA jobs and both test chains remove rosa-tests-report; its step definition is deleted.

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

Sequence Diagram(s)

sequenceDiagram
  participant ROSA tests
  participant JUnit XML
  participant Artifact directory
  ROSA tests->>JUnit XML: generate test results
  ROSA tests->>JUnit XML: optionally strip system-out/system-err
  ROSA tests->>Artifact directory: copy JUnit XML
Loading

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
No-Weak-Crypto ❓ Inconclusive placeholder placeholder
✅ Passed checks (13 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the main change: removing the ROSA report portal integration and related reporting steps.
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 Changed files are CI YAML/shell only; no Ginkgo It/Describe/Context/When titles were added or modified.
Test Structure And Quality ✅ Passed PR only changes CI YAML and shell scripts; no Ginkgo test code was added or modified, so the test-quality checklist is not applicable.
Microshift Test Compatibility ✅ Passed No new Ginkgo test definitions were added; the PR only changes CI YAML/shell scripts and introduces no MicroShift-unsafe APIs or features.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No new Ginkgo e2e tests were added; the PR only changes CI YAML and shell step files, and none contain It/Describe/Context/When bodies.
Topology-Aware Scheduling Compatibility ✅ Passed Only CI test/step-registry scripts and job refs changed; no manifests, controllers, affinity, topology spread, selectors, or PDBs were added.
Ote Binary Stdout Contract ✅ Passed PR only changes CI YAML and shell-step scripts; no Go/process-level OTE binary code or stdout logging changes were introduced.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No new Ginkgo tests were added; the PR only edits CI YAML and shell wrappers, and I found no IPv4-only or external connectivity assumptions in the changed code.
Container-Privileges ✅ Passed Touched CI YAML and scripts contain no privileged:true, hostPID/Network/IPC, SYS_ADMIN, allowPrivilegeEscalation, or securityContext settings.
No-Sensitive-Data-In-Logs ✅ Passed The patch only logs test metadata/commands and removes the report step; no new logs print tokens, passwords, or PII.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

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

🔧 Checkov (3.3.8)
ci-operator/config/openshift/rosa/openshift-rosa-master__e2e.yaml

Traceback (most recent call last):
File "/usr/local/bin/checkov", line 2, in
from checkov.main import Checkov
ModuleNotFoundError: No module named 'checkov'

ci-operator/step-registry/rosa/tests/rosa-tests-ref.yaml

Traceback (most recent call last):
File "/usr/local/bin/checkov", line 2, in
from checkov.main import Checkov
ModuleNotFoundError: No module named 'checkov'


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 Jul 21, 2026

Copy link
Copy Markdown
Contributor

@jerichokeyne: GitHub didn't allow me to request PR reviews from the following users: openshift/ocm-qe.

Note that only openshift members and repo collaborators can review this PR, and authors cannot review their own PRs.

Details

In response to this:

Summary

  • Remove the rosa-tests-report step and all references to it from ROSACLI CI jobs
  • Replace upload_junit_result calls (which tar junit into SHARED_DIR) with a direct cp to ARTIFACT_DIR
  • This fixes jobs failing with Secret "..." is invalid: data: Too long: may not be more than 1048576 bytes when verbose Ginkgo output inflates junit XML beyond the K8s Secret 1 MiB limit

Changes

Deleted: ci-operator/step-registry/rosa/tests/report/ (4 files — step ref, commands script, metadata, OWNERS)

Removed rosa-tests-report references from:

  • rosa-tests-pull-request-chain.yaml
  • rosa-tests-e2e-fullcycle-chain.yaml
  • openshift-rosa-master__e2e.yaml (10 inline test definitions)

Replaced upload_junit_result with cp in 7 step scripts:

  • rosa-tests-commands.sh
  • rosa-tests-pull-request-commands.sh
  • rosa-tests-runtime-day1-post-commands.sh
  • rosa-tests-runtime-day2-commands.sh
  • rosa-tests-runtime-destructive-commands.sh
  • rosa-tests-runtime-destroy-commands.sh
  • rosa-tests-runtime-destroy-post-commands.sh

Test plan

  • Verify make update passes cleanly (done locally)
  • Verify pj-rehearse passes for affected jobs
  • Confirm junit XML appears in GCS artifacts for a test run after merge

/cc @openshift/ocm-qe

Made with Cursor

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.

@openshift-ci openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 21, 2026
@jerichokeyne
jerichokeyne force-pushed the remove-rosacli-reportportal branch from 0c2f95c to 09033ab Compare July 21, 2026 18:29
@openshift-ci openshift-ci Bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jul 21, 2026
@jerichokeyne

Copy link
Copy Markdown
Contributor Author

/pj-rehearse periodic-ci-openshift-rosa-master-e2e-rosa-ocm-resources-f3

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 21, 2026
@jerichokeyne
jerichokeyne force-pushed the remove-rosacli-reportportal branch from 09033ab to 3fa7987 Compare July 21, 2026 20:16
@jerichokeyne

Copy link
Copy Markdown
Contributor Author

/pj-rehearse periodic-ci-openshift-rosa-master-e2e-rosa-ocm-resources-f3

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@jerichokeyne
jerichokeyne force-pushed the remove-rosacli-reportportal branch from 3fa7987 to 91819cf Compare July 22, 2026 13:29
@jerichokeyne

Copy link
Copy Markdown
Contributor Author

/pj-rehearse periodic-ci-openshift-rosa-master-e2e-rosa-ocm-resources-f3

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

Remove the rosa-tests-report step and all references to it from
ROSACLI CI jobs. The upload_junit_result function was tarring junit
XML into SHARED_DIR (backed by a K8s Secret with a 1 MiB limit),
causing jobs to fail with "Secret is invalid: data: Too long" when
verbose Ginkgo output inflated the XML.

Replace upload_junit_result calls with a direct cp to ARTIFACT_DIR,
which has no size limit and is the standard approach used by other
test steps (e.g. terraform-provider-rhcs).

Add STRIP_JUNIT_OUTPUT option to rosa-tests step to strip
system-out/system-err from junit XML before the sidecar censors it.
Enable for rosa-ocm-resources-f3 where the cluster profile secrets
cause the sidecar to censor the entire junit file.

Co-authored-by: Cursor <cursoragent@cursor.com>
@jerichokeyne
jerichokeyne force-pushed the remove-rosacli-reportportal branch from 91819cf to 09ebb8e Compare July 22, 2026 15:40
@jerichokeyne

Copy link
Copy Markdown
Contributor Author

/pj-rehearse periodic-ci-openshift-rosa-master-e2e-rosa-ocm-resources-f3

@jerichokeyne

Copy link
Copy Markdown
Contributor Author

/pj-rehearse periodic-ci-openshift-rosa-master-e2e-rosa-hcp-advanced-f3

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

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

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@jerichokeyne: 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-rosa-master-e2e-presubmits-pr-rosa-hcp-advanced openshift/rosa presubmit Registry content changed
pull-ci-openshift-rosa-master-e2e-presubmits-pr-rosa-sts-advanced openshift/rosa presubmit Registry content changed
pull-ci-openshift-rosa-master-e2e-presubmits-pr-rosa-hcp-private-link openshift/rosa presubmit Registry content changed
pull-ci-openshift-rosa-master-e2e-presubmits-pr-rosa-sts-private-link openshift/rosa presubmit Registry content changed
pull-ci-openshift-rosa-master-e2e-presubmits-pr-rosa-shared-vpc openshift/rosa presubmit Registry content changed
pull-ci-openshift-rosa-master-e2e-presubmits-pr-rosa-hcp-arm openshift/rosa presubmit Registry content changed
pull-ci-openshift-rosa-master-e2e-presubmits-pr-rosa-sts-shared-vpc openshift/rosa presubmit Registry content changed
periodic-ci-openshift-rosa-master-e2e-rosa-hcp-shared-vpc-f3 N/A periodic Registry content changed
periodic-ci-openshift-rosa-master-e2e-rosa-hcp-upgrade-y-stream-f3 N/A periodic Ci-operator config changed
periodic-ci-openshift-rosa-master-e2e-rosa-sts-upgrade-z-stream-f3 N/A periodic Ci-operator config changed
periodic-ci-openshift-rosa-master-e2e-rosa-day1-supplemental-f3 N/A periodic Ci-operator config changed
periodic-ci-openshift-rosa-master-e2e-rosa-hcp-external-auth-f3 N/A periodic Registry content changed
periodic-ci-openshift-rosa-master-e2e-rosa-hcp-advanced-f3 N/A periodic Registry content changed
periodic-ci-openshift-rosa-master-e2e-rosa-ocm-resources-f3 N/A periodic Ci-operator config changed
periodic-ci-openshift-rosa-master-e2e-rosa-sts-shared-vpc-upgrade-y-stream-f3 N/A periodic Ci-operator config changed
periodic-ci-openshift-rosa-master-e2e-rosa-sts-hibernation-f14 N/A periodic Ci-operator config changed
periodic-ci-openshift-rosa-master-e2e-rosa-sts-advanced-f3 N/A periodic Registry content changed
periodic-ci-openshift-rosa-master-e2e-rosa-hcp-upgrade-z-stream-f3 N/A periodic Ci-operator config changed
periodic-ci-openshift-rosa-master-e2e-rosa-hcp-private-link-f3 N/A periodic Registry content changed
periodic-ci-openshift-rosa-master-e2e-rosa-sts-private-link-f3 N/A periodic Registry content changed
periodic-ci-openshift-rosa-master-e2e-rosa-day1-negative-f7 N/A periodic Ci-operator config changed
periodic-ci-openshift-rosa-master-e2e-rosa-hcp-advanced-regional-f3 N/A periodic Registry content changed
periodic-ci-openshift-rosa-master-e2e-rosa-sts-upgrade-y-stream-f3 N/A periodic Ci-operator config changed
periodic-ci-openshift-rosa-master-e2e-rosa-non-sts-upgrade-y-stream-f7 N/A periodic Ci-operator config changed
periodic-ci-openshift-rosa-master-e2e-rosa-hcp-arm-f7 N/A periodic Registry content changed

A total of 27 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

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.

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@jerichokeyne: 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: 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/step-registry/rosa/tests/rosa-tests-commands.sh`:
- Around line 70-83: Update the JUnit sanitization and artifact-copy flow
following the test execution to track failures in an artifact_exit status,
explicitly capture python3 sanitization and cp failures without exiting
prematurely, and preserve test_exit when tests fail. Return artifact_exit only
when the tests succeeded but artifact processing failed, ensuring artifact
failures cannot be silently treated as success.
🪄 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: 42c3882b-9a56-40f4-bb9b-bbaf0bffb043

📥 Commits

Reviewing files that changed from the base of the PR and between 91819cf and 09ebb8e.

📒 Files selected for processing (15)
  • ci-operator/config/openshift/rosa/openshift-rosa-master__e2e.yaml
  • ci-operator/step-registry/rosa/tests/e2e/fullcycle/rosa-tests-e2e-fullcycle-chain.yaml
  • ci-operator/step-registry/rosa/tests/pull-request/rosa-tests-pull-request-chain.yaml
  • ci-operator/step-registry/rosa/tests/pull-request/rosa-tests-pull-request-commands.sh
  • ci-operator/step-registry/rosa/tests/report/OWNERS
  • ci-operator/step-registry/rosa/tests/report/rosa-tests-report-commands.sh
  • ci-operator/step-registry/rosa/tests/report/rosa-tests-report-ref.metadata.json
  • ci-operator/step-registry/rosa/tests/report/rosa-tests-report-ref.yaml
  • ci-operator/step-registry/rosa/tests/rosa-tests-commands.sh
  • ci-operator/step-registry/rosa/tests/rosa-tests-ref.yaml
  • ci-operator/step-registry/rosa/tests/runtime/day1-post/rosa-tests-runtime-day1-post-commands.sh
  • ci-operator/step-registry/rosa/tests/runtime/day2/rosa-tests-runtime-day2-commands.sh
  • ci-operator/step-registry/rosa/tests/runtime/destroy-post/rosa-tests-runtime-destroy-post-commands.sh
  • ci-operator/step-registry/rosa/tests/runtime/destroy/rosa-tests-runtime-destroy-commands.sh
  • ci-operator/step-registry/rosa/tests/runtime/destructive/rosa-tests-runtime-destructive-commands.sh
💤 Files with no reviewable changes (6)
  • ci-operator/step-registry/rosa/tests/pull-request/rosa-tests-pull-request-chain.yaml
  • ci-operator/step-registry/rosa/tests/report/rosa-tests-report-ref.metadata.json
  • ci-operator/step-registry/rosa/tests/report/OWNERS
  • ci-operator/step-registry/rosa/tests/report/rosa-tests-report-commands.sh
  • ci-operator/step-registry/rosa/tests/e2e/fullcycle/rosa-tests-e2e-fullcycle-chain.yaml
  • ci-operator/step-registry/rosa/tests/report/rosa-tests-report-ref.yaml
🚧 Files skipped from review as they are similar to previous changes (8)
  • ci-operator/step-registry/rosa/tests/runtime/day2/rosa-tests-runtime-day2-commands.sh
  • ci-operator/step-registry/rosa/tests/runtime/destroy-post/rosa-tests-runtime-destroy-post-commands.sh
  • ci-operator/step-registry/rosa/tests/runtime/day1-post/rosa-tests-runtime-day1-post-commands.sh
  • ci-operator/step-registry/rosa/tests/runtime/destroy/rosa-tests-runtime-destroy-commands.sh
  • ci-operator/step-registry/rosa/tests/runtime/destructive/rosa-tests-runtime-destructive-commands.sh
  • ci-operator/step-registry/rosa/tests/rosa-tests-ref.yaml
  • ci-operator/step-registry/rosa/tests/pull-request/rosa-tests-pull-request-commands.sh
  • ci-operator/config/openshift/rosa/openshift-rosa-master__e2e.yaml

Comment on lines +70 to +83
python3 -c "
import xml.etree.ElementTree as ET, sys
tree = ET.parse(sys.argv[1])
for elem in tree.iter():
for child in list(elem):
if child.tag in ('system-out', 'system-err'):
elem.remove(child)
tree.write(sys.argv[1], xml_declaration=True, encoding='unicode')
" "${JUNIT_XML}"
fi
cp "${JUNIT_XML}" "${ARTIFACT_DIR}/"

log "Testing is finished and uploaded."
exit ${test_exit}

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

Handle sanitization and copy failures explicitly.

python3 and cp are not folded into the final status policy. With set -e, either failure exits before exit ${test_exit}; without it, the failure can be ignored and the job may report success without the JUnit artifact.

Track an artifact_exit, return the test failure when present, and otherwise return the artifact-processing failure.

Proposed status handling
+artifact_exit=0
+
- python3 -c "..." "${JUNIT_XML}"
+ python3 -c "..." "${JUNIT_XML}" || artifact_exit=$?
...
-cp "${JUNIT_XML}" "${ARTIFACT_DIR}/"
+cp "${JUNIT_XML}" "${ARTIFACT_DIR}/" || artifact_exit=$?
...
-exit ${test_exit}
+if (( test_exit != 0 )); then
+  exit "${test_exit}"
+fi
+exit "${artifact_exit}"

Based on the PR objective to preserve the test exit status while reliably producing JUnit artifacts.

📝 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
python3 -c "
import xml.etree.ElementTree as ET, sys
tree = ET.parse(sys.argv[1])
for elem in tree.iter():
for child in list(elem):
if child.tag in ('system-out', 'system-err'):
elem.remove(child)
tree.write(sys.argv[1], xml_declaration=True, encoding='unicode')
" "${JUNIT_XML}"
fi
cp "${JUNIT_XML}" "${ARTIFACT_DIR}/"
log "Testing is finished and uploaded."
exit ${test_exit}
artifact_exit=0
python3 -c "
import xml.etree.ElementTree as ET, sys
tree = ET.parse(sys.argv[1])
for elem in tree.iter():
for child in list(elem):
if child.tag in ('system-out', 'system-err'):
elem.remove(child)
tree.write(sys.argv[1], xml_declaration=True, encoding='unicode')
" "${JUNIT_XML}" || artifact_exit=$?
fi
cp "${JUNIT_XML}" "${ARTIFACT_DIR}/" || artifact_exit=$?
log "Testing is finished and uploaded."
if (( test_exit != 0 )); then
exit "${test_exit}"
fi
exit "${artifact_exit}"
🧰 Tools
🪛 Shellcheck (0.11.0)

[info] 83-83: Double quote to prevent globbing and word splitting.

(SC2086)

🤖 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/step-registry/rosa/tests/rosa-tests-commands.sh` around lines 70
- 83, Update the JUnit sanitization and artifact-copy flow following the test
execution to track failures in an artifact_exit status, explicitly capture
python3 sanitization and cp failures without exiting prematurely, and preserve
test_exit when tests fail. Return artifact_exit only when the tests succeeded
but artifact processing failed, ensuring artifact failures cannot be silently
treated as success.

@amandahla

Copy link
Copy Markdown
Contributor

/approve
/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jul 22, 2026
@openshift-ci

openshift-ci Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: amandahla, jerichokeyne

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

@jerichokeyne

Copy link
Copy Markdown
Contributor Author

/pj-rehearse ack

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@jerichokeyne: 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 Jul 22, 2026
@openshift-ci

openshift-ci Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

@jerichokeyne: 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/periodic-ci-openshift-rosa-master-e2e-rosa-ocm-resources-f3 09ebb8e link unknown /pj-rehearse periodic-ci-openshift-rosa-master-e2e-rosa-ocm-resources-f3

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 8fbeb48 into openshift:main Jul 22, 2026
17 of 18 checks passed
@jerichokeyne
jerichokeyne deleted the remove-rosacli-reportportal branch July 22, 2026 17:55
apahim pushed a commit to apahim/release that referenced this pull request Jul 24, 2026
Remove the rosa-tests-report step and all references to it from
ROSACLI CI jobs. The upload_junit_result function was tarring junit
XML into SHARED_DIR (backed by a K8s Secret with a 1 MiB limit),
causing jobs to fail with "Secret is invalid: data: Too long" when
verbose Ginkgo output inflated the XML.

Replace upload_junit_result calls with a direct cp to ARTIFACT_DIR,
which has no size limit and is the standard approach used by other
test steps (e.g. terraform-provider-rhcs).

Add STRIP_JUNIT_OUTPUT option to rosa-tests step to strip
system-out/system-err from junit XML before the sidecar censors it.
Enable for rosa-ocm-resources-f3 where the cluster profile secrets
cause the sidecar to censor the entire junit file.

Co-authored-by: Cursor <cursoragent@cursor.com>
amogh-redhat pushed a commit to amogh-redhat/release that referenced this pull request Aug 5, 2026
Remove the rosa-tests-report step and all references to it from
ROSACLI CI jobs. The upload_junit_result function was tarring junit
XML into SHARED_DIR (backed by a K8s Secret with a 1 MiB limit),
causing jobs to fail with "Secret is invalid: data: Too long" when
verbose Ginkgo output inflated the XML.

Replace upload_junit_result calls with a direct cp to ARTIFACT_DIR,
which has no size limit and is the standard approach used by other
test steps (e.g. terraform-provider-rhcs).

Add STRIP_JUNIT_OUTPUT option to rosa-tests step to strip
system-out/system-err from junit XML before the sidecar censors it.
Enable for rosa-ocm-resources-f3 where the cluster profile secrets
cause the sidecar to censor the entire junit file.

Co-authored-by: Cursor <cursoragent@cursor.com>
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