Skip to main content

add-step-registry

Add a new step-registry step (ref YAML + commands.sh) in openshift/release. Use when creating a new CI step, atomic test action, or reusable ref component. Run step-finder first to avoid duplicates.

Source facts

Repository
openshift/release
Last source activity
June 25, 2026 at 22:02
Detected SKILL.md language
English
Stars
330
Forks
2,401

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
add-step-registry
description
Add a new step-registry step (ref YAML + commands.sh) in openshift/release. Use when creating a new CI step, atomic test action, or reusable ref component. Run step-finder first to avoid duplicates.
# Add Step Registry Step Create a new atomic step under `ci-operator/step-registry/`. ## Before you start 1. Run **step-finder** (or `python3 .claude/scripts/step_finder.py "<query>"`) — reuse existing steps when possible. 2. Read a similar step in the same area for `from`, env vars, credentials, and script patterns. 3. Confirm the step belongs in step-registry (single task), not a one-off inline in one repo's config. ## Scaffold files Dry-run (prints target paths to stderr; add `--preview` to show generated bodies): ```bash python3 .claude/scripts/scaffold_step_registry.py \ --name <step-name> \ --subdir <path-under-step-registry> \ --from cli \ --documentation "What this step does" ``` ImageStream-based step (uses `from_image` block instead of `from` alias): ```bash python3 .claude/scripts/scaffold_step_registry.py \ --name <step-name> \ --subdir <path-under-step-registry> \ --from-image-namespace <ns> \ --from-image-name <name> \ --from-image-tag <tag> \ --write ``` Create files: ```bash python3 .claude/scripts/scaffold_step_registry.py \ --name <step-name> \ --subdir <path-under-step-registry> \ --from cli \ --documentation "What this step does" \ --write ``` Naming: | Item | Rule | |------|------| | `--name` | lowercase, hyphens; becomes `ref.as` and `ref: <name>`; must not end with `-step` | | files | `<name>-ref.yaml`, `<name>-commands.sh` | | `--subdir` | e.g. `myorg/install` → `ci-operator/step-registry/myorg/install/` | Common `from` alias values: `cli`, `tests`, or another image alias from the consuming repo's ci-operator config. Use `--from-image-*` when the step needs an explicit ImageStream reference. ## Implement the step 1. Edit `*-commands.sh`: - Start with `set -euo pipefail` (avoid `-x` unless debugging). - Disable tracing around secrets/passwords (see root `CLAUDE.md`). - Use `${SHARED_DIR}` to pass data between steps; do not echo credentials. 2. Edit `*-ref.yaml`: - Add `env` entries with `default` + `documentation` for tunables. - Set `timeout`, `grace_period`, `resources` if non-default. - Add `dependencies` / `credentials` only when required (copy from similar steps). 3. Add `OWNERS` under new top-level directories if no parent OWNERS covers the path. ## Validate and regenerate ```bash make registry-metadata ``` Registry load check (optional; `make validate-step-registry` may fail if the local configresolver image no longer accepts `--prow-config`): ```bash podman run --rm \ -v "$(pwd)/ci-operator/config:/config:z" \ -v "$(pwd)/ci-operator/step-registry:/step-registry:z" \ quay.io/openshift/ci-public:ci_ci-operator-configresolver_latest \ --config /config --registry /step-registry --validate-only ``` If wiring into a ci-operator config in the same PR, also: ```bash make update make checkconfig ``` ## Wire into a test (same or follow-up PR) In `ci-operator/config/<org>/<repo>/<branch>.yaml`: ```yaml tests: - as: my-test steps: pre: - ref: <step-name> test: - ref: openshift-e2e-test ``` Or reference the step from a `-chain.yaml` / `-workflow.yaml` instead of directly in config. ## Chains and workflows This skill scaffolds **steps** only. For chains/workflows: - **Chain**: new `*-chain.yaml` listing `- ref:` / `- chain:` steps; no commands script. - **Workflow**: new `*-workflow.yaml` with `pre` / `test` / `post` phases. Copy structure from an existing chain/workflow in the same platform area; run `make validate-step-registry`. ## Checklist - [ ] step-finder searched; no duplicate - [ ] `-ref.yaml` + `-commands.sh` created and named consistently - [ ] documentation field describes behavior - [ ] secrets handled safely in shell - [ ] `make registry-metadata` pass (and optional configresolver `--validate-only` above) - [ ] referenced from config/chain/workflow if intended for use
View on GitHub