updated 7d ago
Phase 1 of the MicroShift release process: verify that ART produced correct RPMs and bootc images for a given release. Checks Brew builds, NVR format, commit provenance, RHEL variants, mirror availability, shipment MR, stage catalog, and bootc image SHA consistency.
O que dá para fazer com Microshift Release:validate Artifacts?
name: microshift-release:validate-artifacts argument-hint: [--verbose] description: Validate MicroShift built artifacts (RPMs and bootc images) produced by ART for a release user-invocable: true allowed-tools: Bash
microshift-release:validate-artifacts
Synopsis
/microshift-release:validate-artifacts <version> [--verbose]
Description
Phase 1 of the MicroShift release process: verify that ART produced correct RPMs and bootc images for a given release. Checks Brew builds, NVR format, commit provenance, RHEL variants, mirror availability, shipment MR, stage catalog, and bootc image SHA consistency.
Supports all release types: X/Y (GA), Z (z-stream), RC, EC, and nightly.
Prerequisites
| Requirement | Needed for | Mandatory? |
|---|---|---|
| VPN | Brew RPM checks, git commit verification | Yes — Brew checks WARN and degrade without it |
GITLAB_API_TOKEN |
Shipment MR checks (bootc_shipment_*) |
No — bootc MR checks WARN and skip without it |
| Internet (mirrors) | rpm_mirror_*, bootc_mirror_* |
Yes for RC/EC mirror checks |
Arguments
version(required): Full version string- Z-stream:
4.21.8 - X/Y (GA):
4.22.0 - RC:
4.22.0-rc.2 - EC:
4.22.0-ec.5 - nightly:
4.21.0-0.nightly-2026-03-23-021947
- Z-stream:
--verbose(optional): Show detailed markdown report with evidence per check
Scripts Directory
SCRIPTS_DIR=plugins/microshift-release/scripts
Implementation
Step 1: Parse Arguments
- Extract
versionfrom$ARGUMENTS— the first non-flag token - Pass through
--verboseand--jsonflags if present
Step 2: Run the Script
bash $SCRIPTS_DIR/validate.sh <version> [--verbose]
Display stderr only if the script exits non-zero.
Step 3: Display Output
Display output verbatim — do not reformat, summarize, or add commentary. The script produces deterministic pre-formatted text.
Step 4: Handle Errors
If the script exits non-zero:
- VPN errors: Connect to VPN (Brew and git operations require it)
- Missing GITLAB_API_TOKEN:
export GITLAB_API_TOKEN=<token>for shipment MR checks - HTTP errors on mirrors: Mirrors may not be populated yet — check with ART
Checks Performed
RPM Checks (all release types)
| Check | Description |
|---|---|
rpm_packages_list |
All expected RPM packages present in Brew build |
rpm_filename_format |
NVR matches expected pattern for this release type |
rpm_commit_id |
Commit hash from NVR is on the correct release-X.Y branch |
rpm_rhel_version |
Both el9 and el10 builds are present |
rpm_mirror_ec |
EC only: RPMs available at mirror.openshift.com/ocp-dev-preview/ |
rpm_mirror_rc |
RC only: RPMs available at mirror.openshift.com/ocp/ |
rpm_xy0_commit_match |
X.Y.0 only: commit matches the latest RC commit |
Bootc Checks (4.18+, not nightly)
| Check | Description |
|---|---|
bootc_shipment_mr |
Shipment MR exists in ocp-shipment-data GitLab repo |
bootc_shipment_yaml_count |
Exactly 1 YAML file in the MR |
bootc_shipment_xy0_type |
X/Y.0 only: spec.type == RHEA |
bootc_shipment_xy0_release_notes |
X/Y.0 only: releaseNotes.solution URL present |
bootc_stage_advisory_url |
environments.stage.advisory.internal_url present |
bootc_catalog |
Image published in catalog (stage or prod) |
bootc_prod_xy0_type |
X/Y.0 only: releaseNotes.type == RHEA |
bootc_prod_advisory_url |
X/Y.0 only: environments.prod.advisory.internal_url present |
bootc_image_sha_match |
RC/EC only: pullspec SHA matches advisory YAML SHA |
bootc_mirror_ec |
EC only: bootc-pullspec.txt at mirror/ocp-dev-preview/ |
bootc_mirror_rc |
RC only: bootc-pullspec.txt at mirror/ocp/ |
Output Format
Short (default): Only actionable checks are shown. Skipped checks (not applicable for the release type) are hidden and summarized as a count. Details are shown only on failure.
Validating 4.21.8
── RPM ──────────────────────────────────────────────────────
✅ rpm_packages_list All 7 expected packages found in Brew
✅ rpm_filename_format NVR matches Z pattern
✅ rpm_commit_id Commit abc1234 from 2026-05-08 is on release-4.21
✅ rpm_rhel_version el9 and el10 builds present
── Bootc ────────────────────────────────────────────────────
✅ bootc_shipment_mr MR !1234: microshift 4.21.8 shipment
✅ bootc_shipment_yaml_count 1 YAML file in MR
✅ bootc_catalog Image found in prod catalog
(6 checks skipped — not applicable)
On failure, details appear below the failing check:
❌ rpm_packages_list 2 package(s) missing from Brew build
Missing: microshift-libs, microshift-selinux
Expected: microshift, microshift-libs, ...
Verbose (--verbose): Markdown table with full evidence per check (all checks shown including skips).
Examples
/microshift-release:validate-artifacts 4.21.8 # Z-stream
/microshift-release:validate-artifacts 4.22.0 # X/Y GA
/microshift-release:validate-artifacts 4.22.0-rc.2 # Release Candidate
/microshift-release:validate-artifacts 4.22.0-ec.5 # Engineering Candidate
/microshift-release:validate-artifacts 4.21.8 --verbose # detailed report
Notes
- Read-only — does NOT create tickets, advisories, or modify external state. No confirmation required.
- VPN is required for Brew queries and git commit verification on internal repos
- GITLAB_API_TOKEN enables shipment MR checks; without it those checks show WARN
- Bootc checks are skipped for versions below 4.18 and for nightly builds
- Exit code is non-zero if any check returns FAIL
Instalação
Adicione Microshift Release:validate Artifacts ao seu cliente. Escolha o que você usa.
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/validate-artifacts ~/.claude/skills/A skill is a plain directory. Copy it into `.claude/skills/` in a project or in your home directory.
Pontuação
75 / 100
Boa