Reproduce CI
Use Homeboy CI workflows when a component declares CI profiles that can be run through Homeboy’s command surface. This is different from parsing arbitrary provider YAML.
Use This When
- You need to list the CI profiles a component exposes to Homeboy.
- A failing PR check maps to a declared Homeboy lint, test, bench, or review profile.
- You need differential classification between a baseline command and a head command.
- An autofix job needs a dry-run transaction before pushing changes.
1. List Declared Profiles
Start by asking Homeboy what it knows about the component’s CI surface:
homeboy review ci list --path /path/to/repo --extension <extension-id>Use discovered provider inventory as context, not as proof that every provider job is locally reproducible.
2. Run Command-Native Jobs
When a declared job maps to a Homeboy command, run it through that command’s normal workflow:
homeboy review ci run --path /path/to/repo --extension <extension-id> --job <job-id>
homeboy review ci run --path /path/to/repo --extension <extension-id> --profile <profile-id>For jobs that map directly to native Homeboy commands, you can also run the command itself:
homeboy review lint <component-id> --ci-job <job-id>
homeboy review test <component-id> --ci-job <job-id>
homeboy bench <component-id> --ci-profile <profile-id>For a PR-shaped gate with an additional declared CI profile:
homeboy review <component-id> --changed-since origin/main --ci-profile pr3. Capture The CI Context
Use --output when a CI reproduction is intended for automation or agents:
homeboy --output homeboy-results/ci-test.json
test <component-id> --ci-job <job-id>Command-native CI reproduction includes ci_context metadata so downstream tools can see which declared job/profile was selected.
4. Classify Baseline Versus Head
Use differential classification when you need to distinguish pre-existing failures from branch-introduced failures:
homeboy review ci differential-gate
--baseline-command 'homeboy review test <component-id> --changed-since origin/main'
--baseline-exit-code 0
--head-command 'homeboy review test <component-id> --changed-since origin/main'
--head-exit-code 1This is useful for reporting whether a branch newly broke the gate or inherited an existing failure.
5. Dry-Run Autofix Transactions
When CI is allowed to push autofixes, dry-run the transaction first:
homeboy review ci autofix
--path /path/to/repo
--target-repo owner/repo
--target-branch pr-head-branch
--message "chore(ci): apply Homeboy autofixes"
--dry-runThe dry-run should report the changed files, target route, and whether it would push directly or create an autofix branch.