Agent skill
test-bootc-build
Run a bootc build test and report results. Builds a bootc container image, optionally creates a disk image, and downloads the artifact.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/test-bootc-build
SKILL.md
Bootc Build Test Workflow
Run a bootc build with the specified parameters, monitor until completion, and download the artifact.
Parameters
$ARGUMENTS contains the build name (required)
Required Environment Variables
Before running, ensure these are set:
BOOTC_REGISTRY- Base registry URL (e.g.,quay.io/myorg/myimage)REGISTRY_USERNAME- Registry username (or read fromregistry-userfile)REGISTRY_PASSWORD- Registry password (or read fromregistry-passfile)
Execution Steps
1. Validate Environment
bash
# Check required environment
if [ -z "$BOOTC_REGISTRY" ]; then
echo "ERROR: BOOTC_REGISTRY environment variable not set"
echo "Example: export BOOTC_REGISTRY=quay.io/myorg/myimage"
exit 1
fi
2. Infer CAIB_SERVER from OpenShift Route
bash
CAIB_SERVER="https://$(oc get route ado-build-api -n automotive-dev-operator-system -o jsonpath='{.spec.host}')"
echo "Using CAIB_SERVER: $CAIB_SERVER"
3. Get Authentication Token
bash
TOKEN=$(oc whoami -t)
4. Get Registry Credentials
bash
# Try environment variables first, fall back to files
REGISTRY_USERNAME="${REGISTRY_USERNAME:-$(cat registry-user 2>/dev/null)}"
REGISTRY_PASSWORD="${REGISTRY_PASSWORD:-$(cat registry-pass 2>/dev/null)}"
5. Submit Build with Download
The build command creates a bootc container image and optionally a disk image.
bash
BUILD_NAME="$ARGUMENTS"
PUSH_IMAGE="${BOOTC_REGISTRY}:latest"
DISK_IMAGE="${BOOTC_REGISTRY}:latest-disk"
OUTPUT_FILE="./output/${BUILD_NAME}.qcow2"
bin/caib build simple.aib.yml \
--server "$CAIB_SERVER" \
--token "$TOKEN" \
--name "$BUILD_NAME" \
--arch arm64 \
--target qemu \
--push "$PUSH_IMAGE" \
--disk \
--format qcow2 \
--push-disk "$DISK_IMAGE" \
--output "$OUTPUT_FILE" \
--registry-username "$REGISTRY_USERNAME" \
--registry-password "$REGISTRY_PASSWORD" \
--follow
6. Monitor Build (if not using --follow)
bash
# Check build status
oc get imagebuild -n automotive-dev-operator-system $BUILD_NAME -o jsonpath='{.status.phase}'
7. On Failure - Debug
bash
# Get PipelineRun name from ImageBuild status
PIPELINE_RUN=$(oc get imagebuild -n automotive-dev-operator-system $BUILD_NAME -o jsonpath='{.status.pipelineRunName}')
# Get pod name using correct PipelineRun label
POD=$(oc get pods -n automotive-dev-operator-system -l tekton.dev/pipelineRun=${PIPELINE_RUN} -o jsonpath='{.items[0].metadata.name}')
# Get build logs
oc logs -n automotive-dev-operator-system $POD -c step-build-image --tail=200
# Check for common issues
oc logs -n automotive-dev-operator-system $POD -c step-build-image | grep -i "builder\|cluster registry\|Pulling\|error\|failed"
8. Verify Download
bash
# Check if artifact was downloaded
if [ -f "$OUTPUT_FILE" ]; then
echo "SUCCESS: Artifact downloaded to $OUTPUT_FILE"
ls -lh "$OUTPUT_FILE"
else
echo "WARNING: Artifact not found at $OUTPUT_FILE"
fi
9. Report Results
Provide a summary with:
- Build status (success/failure)
- Download location and file size
- If failed: the specific error and relevant log snippets
- Suggestions for fixes based on the error type
CLI Command Reference
build (bootc - default)
Creates a bootc container image from an AIB manifest.
bash
caib build <manifest.aib.yml> \
--push <registry/image:tag> # Required: push container to registry
--disk # Also build disk image from container
--format <qcow2|raw|simg> # Disk image format (default: qcow2)
--push-disk <registry/img:tag> # Push disk as OCI artifact
--output <file> # Download disk image to file
--follow # Follow build logs
--wait # Wait for build to complete
disk
Creates a disk image from an existing bootc container.
bash
caib disk <container-ref> \
--push <registry/image:tag> # Push disk as OCI artifact
--output <file> # Download disk image to file
--format <qcow2|raw|simg> # Disk format (default: qcow2)
build-legacy
Traditional ostree/package-based builds (for backwards compatibility).
bash
caib build-legacy <manifest.aib.yml> \
--mode <image|package> # Required: build mode
--format <qcow2|raw|simg> # Required: export format
--name <build-name> # Required: build name
Common Error Patterns
- "Builder image not found" - prepare-builder task failed or result not passed
- "containers-storage: invalid reference" - skopeo copy using wrong format
- "setfiles: Operation not supported" - SELinux context issues in osbuild
- "unauthorized" - Token or registry auth issues
- "BOOTC_REGISTRY not set" - Environment variable missing
- "container-ref is required for disk mode" - Missing container reference for disk command
Alternative: Download Only (for completed builds)
bash
bin/caib download \
--server "$CAIB_SERVER" \
--token "$TOKEN" \
--name "$BUILD_NAME" \
--output-dir ./output
Didn't find tool you were looking for?