Skip to content

Conversation

@agullon
Copy link

@agullon agullon commented Oct 29, 2025

What this PR does / why we need it:

This PR adds a new Claude Code plugin for analyzing MicroShift Prow CI job executions and test results. The microshift-prow-job plugin provides automated analysis tools for MicroShift CI jobs running on OpenShift's Prow CI infrastructure. It helps developers and QE engineers quickly understand test results, diagnose failures, and track MicroShift versions across different test configurations.

Commands Added:

  • /microshift-prow-job:analyze-job <job-url>
    • Analyzes a complete MicroShift Prow CI job execution with job metadata, version detection, test results, and failure analysis
  • /microshift-prow-job:analyze-test-scenario <job-url> [scenario-name]
    • Analyzes specific test scenarios with structured JSON output, or lists all scenarios if no name provided

Special notes for your reviewer:

  • This plugin is specifically designed for MicroShift Prow CI jobs and understands their unique structure (scenario-info artifacts, test naming conventions, etc.)
  • The extract_microshift_version.py script automatically classifies build types (nightly, EC, RC, zstream) based on version string patterns
  • Commands follow the repository's established conventions (Linux man page format with Name, Synopsis, Description, Implementation, Arguments, Return Value, Examples sections)
  • The plugin gracefully handles missing artifacts and provides helpful error messages when jobs are not found or still running
  • Tested with multiple job types and scenarios including passing/failing jobs across all architectures and image types

@openshift-ci openshift-ci bot requested review from dgoodwin and enxebre October 29, 2025 10:56
@openshift-merge-robot openshift-merge-robot added needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. and removed needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. labels Oct 29, 2025
@agullon agullon changed the title Add microshift-prow-jobs plugin feat: add microshift-prow-jobs plugin Oct 29, 2025
@agullon
Copy link
Author

agullon commented Oct 29, 2025

/retest

@agullon
Copy link
Author

agullon commented Oct 29, 2025

/test images

Copy link
Member

@stbenjam stbenjam left a comment

Choose a reason for hiding this comment

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

Nice contribution thanks, a few comments below

Copy link
Member

Choose a reason for hiding this comment

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

Could it just be part of prow-jobs? microshift-prow-jobs feels a little too specialized. Either a microshift plugin, or contribute it to the prow-jobs plugin will make it more discoverable for other folks who might be debugging various CI jobs

Copy link
Author

Choose a reason for hiding this comment

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

I think there's value on a more specialized prow-job plugin only for microshift because MicroShift tests are not based on ginkgo test suites but on Robot Framework.

Copy link
Member

Choose a reason for hiding this comment

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

See https://github.com/openshift-eng/ai-helpers/tree/main/plugins/prow-job/skills

This structure essentially creates a "scripts" skill, I'd name it and organize it in its own dir

Comment on lines +89 to +98
**Actions**:
1. Construct base artifact URL:
```
https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/logs/<job-name>/<job-id>/artifacts/<job-type>/openshift-microshift-e2e-metal-tests/artifacts/scenario-info/<scenario-name>/
```
2. Construct specific artifact URLs:
- JUnit XML: `<base-url>/junit.xml`
- Boot log: `<base-url>/boot_and_run.log`
- Debug log: `<base-url>/rf-debug.log`
- Phase logs: `<base-url>/phase_*/*.log`
Copy link
Member

Choose a reason for hiding this comment

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

Most of the prow job tools have settled on using gcs utils to browse the buckets instead, its a little faster I think than trying to navigate the gcsweb interface

Copy link
Author

Choose a reason for hiding this comment

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

I think this is good as it is because it's pointing to just the 4 final files listed which should be easy to read by the LLM.

rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
@agullon agullon force-pushed the microshift-prow-jobs_plugin branch from 0bdc57d to 22ba531 Compare October 29, 2025 15:34
@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 29, 2025
@agullon agullon closed this Oct 29, 2025
@agullon agullon force-pushed the microshift-prow-jobs_plugin branch from 22ba531 to a05beda Compare October 29, 2025 15:35
rh-pre-commit.check-secrets: ENABLED
…elpers into microshift-prow-jobs_plugin

rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
@agullon agullon reopened this Oct 29, 2025
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 29, 2025
@openshift-ci
Copy link

openshift-ci bot commented Oct 29, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

The full list of commands accepted by this bot can be found here.

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

1 similar comment
@openshift-ci
Copy link

openshift-ci bot commented Oct 29, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

The full list of commands accepted by this bot can be found here.

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

rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED
@agullon
Copy link
Author

agullon commented Oct 29, 2025

Nice contribution thanks, a few comments below

@stbenjam thank you for comments. Creating and testing this plugin really helped me to understand how a LLM "is thinking", how I should ask tasks and what to expect as an output. It really shines when the task/skill is small and concise. Also, it works great, in particular when generating the output, with human-readable text (for example md files) but not with structure data (json format.).

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants