updated 7d ago
Runs the full Prow CI release testing workflow for MicroShift (Phase 2 of the release process). Supports 4.21+ only — earlier versions use Jenkins pipelines.
What can you do with Microshift Release:automated Testing?
name: microshift-release:automated-testing argument-hint: description: Run the full Prow CI release testing workflow — create PR, trigger jobs, check status, merge PR, download and upload artifacts user-invocable: true allowed-tools: Bash
microshift-release:automated-testing
Synopsis
/microshift-release:automated-testing <version>
Description
Runs the full Prow CI release testing workflow for MicroShift (Phase 2 of the release process). Supports 4.21+ only — earlier versions use Jenkins pipelines.
The skill walks through all steps sequentially, skipping steps that are already complete. For running individual actions manually, use the bash script directly:
bash plugins/microshift-release/scripts/prow_testing.sh <action> <version> [--execute]
Prerequisites
| Requirement | Needed for | Mandatory? |
|---|---|---|
aws CLI (configured) |
Step 0 (preflight), Step 5 (upload) | Yes |
gh CLI (authenticated) |
All PR operations | Yes |
GitHub fork of openshift/microshift |
Step 1 (create PR) | Yes |
gsutil CLI |
Step 4 (download) | Yes |
Arguments
<version>(required): MicroShift version (X.Y.Z,X.Y.Z-rc.N, orX.Y.Z-ec.N). Must be 4.21+.
Scripts Directory
SCRIPTS_DIR=plugins/microshift-release/scripts
Implementation
Execute each step in order. Redirect stderr to /dev/null for all commands — stderr only contains progress messages. On non-zero exit, re-run without suppressing stderr and display the error.
Step 0: Validate Build Artifact are in the Cache
Run bash ${SCRIPTS_DIR}/prow_testing.sh preflight <version>. Parse the JSON output:
- If
"status": "pass"— display the message and continue to Step 1. - If
"status": "warn"— display each check's status and reason. Ask the user if they want to proceed.- If confirmed, continue to Step 1.
- If declined, stop the workflow.
- If
"status": "fail"— display each check's status, reason, and details. Stop the workflow.-
For
s3_rpmsfailure: tell the user to refresh the build cache by posting these comments on the PR (create the PR first if needed):/test e2e-aws-tests-cache /test e2e-aws-tests-cache-arm
-
Step 1: Create Release Testing Draft PR
The PR is always created in draft state. Run bash ${SCRIPTS_DIR}/prow_testing.sh create-pr <version> without --execute first. Parse the JSON output:
- If
"status": "exists"— display the message and continue to Step 2. - If
"status": "plan"— display the plan and ask for confirmation.- If confirmed, re-run with
--executeand display the result. - If declined, stop the workflow.
- If confirmed, re-run with
Step 2: Trigger CI Jobs
Run bash ${SCRIPTS_DIR}/prow_testing.sh trigger <version> without --execute first. Parse the JSON output:
- If
"status": "skip"— no jobs to trigger, display the message and continue to Step 3. - If
"status": "plan"— display the plan and ask for confirmation.- If confirmed, re-run with
--executeand display the result, then continue to Step 3. - If declined, continue to Step 3.
- If confirmed, re-run with
Step 3: Verify CI Jobs and Scenarios results
Run bash ${SCRIPTS_DIR}/prow_testing.sh status <version>.
Display the output verbatim — it is a pre-formatted table. Do not reformat it.
If all jobs finished, run scenario validation:
Run bash ${SCRIPTS_DIR}/prow_testing.sh scenarios <version>. Parse the JSON output:
- Display the
messagefield (summary of jobs, scenarios, pass/fail/skip counts). - For each job, display
release_under_testand scenario counts. - If any
skipped_scenarios— display them as warnings. - If any
failed_scenarios— display them. - If
"status": "fail"— display the message and stop the workflow. Possible causes:release_under_testdoes not match the target version for a job.- Scenarios failed.
- Individual scenario versions don't match the target (excluding nightlies).
- If
"status": "pass"— continue to Step 4.
If not all jobs passed, stop the workflow.
Step 4: Download CI Jobs results
Run bash ${SCRIPTS_DIR}/prow_testing.sh download <version> without --execute first. Parse the JSON output:
- If
"status": "plan"— display the plan (jobs to download, destination directory) and ask for confirmation.- If confirmed, re-run with
--executeand display the result. - If declined, stop the workflow.
- If confirmed, re-run with
Step 5: Upload CI Jobs results to S3
Run bash ${SCRIPTS_DIR}/prow_testing.sh upload <version> without --execute first. Parse the JSON output:
- If
"status": "plan"— display the plan (tar.gz name, S3 destination) and ask for confirmation.- If confirmed, re-run with
--executeand display the result (public URL). - If declined, stop the workflow.
- If confirmed, re-run with
Step 6: Close PR and Clean Up
Run bash ${SCRIPTS_DIR}/prow_testing.sh complete <version> without --execute first. Parse the JSON output:
- If
"status": "plan"— display the plan (post comment, close PR, delete branch) and ask for confirmation.- If confirmed, re-run with
--executeand display the result. - If declined, stop the workflow.
- If confirmed, re-run with
Errors
The script exits non-zero with a JSON message field. Common errors:
| Error | Cause |
|---|---|
| Version < 4.21 | Jenkins pipelines, not Prow CI |
| Nightly version | Phase 2 does not apply |
gh failure |
Not authenticated or no permissions |
git push failure |
Fork of openshift/microshift doesn't exist, or no push access |
| Branch exists | Delete it or use existing PR |
gsutil not found |
Install Google Cloud SDK |
aws not found |
Install and configure AWS CLI |
Examples
/microshift-release:automated-testing 4.21.3 # run full workflow
/microshift-release:automated-testing 4.22.0-rc.1 # RC version
/microshift-release:automated-testing 4.22.0-ec.5 # EC version
Install
Add Microshift Release:automated Testing to your client. Pick the one you use.
npx skills add openshift-eng/edge-toolingInstalls every skill in the repository, then prompts for which to keep.
/plugin marketplace add openshift-eng/edge-toolingAdds the repository as a plugin marketplace; install individual plugins with `/plugin install`.
git clone https://github.com/openshift-eng/edge-tooling
cp -r plugins/microshift-release/skills/automated-testing ~/.claude/skills/A skill is a plain directory. Copy it into `.claude/skills/` in a project or in your home directory.
Score
75 / 100
Good