CI Status
Monitor the GitHub Actions CI pipeline for the current branch. A feature is not done until CI passes.
Instructions
- Identify the current branch and latest commit:
BRANCH=$(git branch --show-current)
SHA=$(git rev-parse --short HEAD)
echo "Branch: $BRANCH | Commit: $SHA"
- Find the latest CI run for this branch:
gh api "repos/ryaneggz/open-harness/actions/runs?branch=$BRANCH&per_page=1" \
--jq '.workflow_runs[0] | {id: .id, status: .status, conclusion: .conclusion, head_sha: .head_sha[:7], name: .name}'
- If the run is still in progress, poll every 15 seconds (max 5 minutes):
RUN_ID=<id from step 2>
for i in $(seq 1 20); do
STATUS=$(gh api "repos/ryaneggz/open-harness/actions/runs/$RUN_ID" --jq '.status')
if [ "$STATUS" = "completed" ]; then
break
fi
echo "Still running... ($i/20)"
sleep 15
done
- Check the result:
gh api "repos/ryaneggz/open-harness/actions/runs/$RUN_ID" \
--jq '{status: .status, conclusion: .conclusion, url: .html_url}'
- If failed, get the failure details:
# Get the failed job ID
JOB_ID=$(gh api "repos/ryaneggz/open-harness/actions/runs/$RUN_ID/jobs" \
--jq '.jobs[] | select(.conclusion == "failure") | .id')
# Get the failure context (15 lines before the error)
gh api "repos/ryaneggz/open-harness/actions/jobs/$JOB_ID/logs" 2>&1 \
| grep -B 15 "Process completed with exit code" | head -25
- Report the result:
PASS: Report "CI green" with the run URL
FAIL: Report the failing step, error message, and suggest a fix. Then fix the issue, commit, push, and run
/ci-statusagainNO RUN: No workflow's
on:filter matched the push. This repo's CI is mostly PATH-filtered, not branch-filtered:ci-harness.yml— push only:packages/**,package.json,pnpm-lock.yaml,pnpm-workspace.yaml, itselfdocs.yml— PR or push-to-main:docs/**,apps/docs/**,blog/**, itselfconciseness.yml— push or PR:workspace/*.md,workspace/.claude/rules/*.md, itselfrelease.yml— tag push only
Infrastructure-only PRs (devcontainer/scripts/install/) trigger NOTHING on push — that's expected.
pull_request-event workflows still fire when the PR opens. Diagnose with:git diff --name-only HEAD~1 HEADand compare against each workflow'son:block.
CI Pipeline Steps
This project's CI (CI: Harness) runs these steps in order:
- Lint (
pnpm run lint) - Format check (
pnpm run format:check) - Type check (
pnpm run type-check) - Prisma generate (
pnpm exec prisma generate) - Prisma migrate (
npx prisma migrate deploy) - Build (
pnpm run build) - Test (
pnpm test) - Playwright E2E (
pnpm run test:e2e)
Local Pre-flight
Before pushing, you can run the same checks locally to catch issues early:
pnpm -r run lint && pnpm -r run format:check && pnpm -r run build && pnpm -r run test