CI
ci-verification
>
Install
mkdir -p .claude/skills/ci-verification && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/15130" && unzip -o skill.zip -d .claude/skills/ci-verification && rm skill.zipInstalls to .claude/skills/ci-verification
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Verify GitHub Actions CI workflows locally using act before pushing or creating pull requests. Use this skill when asked to "run CI", "check CI", "verify CI locally", or when preparing a pull request.200 chars✓ has a “when” trigger
About this skill
CI Verification with act
This project uses act to run GitHub Actions
workflows locally before pushing, so build/test failures are caught before
CD runs on GitHub.
Prerequisites
- Docker (OrbStack supported) must be running
actmust be installed:brew install act~/.actrcmust contain--container-architecture linux/amd64
Environment Setup (OrbStack)
If DOCKER_HOST is not set, export it first:
export DOCKER_HOST="unix://${HOME}/.orbstack/run/docker.sock"
To make this permanent, append to ~/.actrc:
echo "--env DOCKER_HOST=unix://${HOME}/.orbstack/run/docker.sock" >> ~/.actrc
Workflow Files
| File | Trigger | Purpose |
|---|---|---|
.github/workflows/e2e.yml | pull_request → main | Type check + build + E2E tests |
.github/workflows/deploy.yml | push → main | Production build + GitHub Pages deploy |
Commands
List available jobs
act --list
Run PR CI (full: type check → build → E2E)
DOCKER_HOST="unix://${HOME}/.orbstack/run/docker.sock" \
act pull_request \
--container-architecture linux/amd64
Run only the e2e job (faster feedback)
DOCKER_HOST="unix://${HOME}/.orbstack/run/docker.sock" \
act pull_request -j e2e \
--container-architecture linux/amd64
Debug output
DOCKER_HOST="unix://${HOME}/.orbstack/run/docker.sock" \
act pull_request -j e2e \
--container-architecture linux/amd64 \
-v
Pre-PR Checklist
Before creating a pull request, verify all of the following pass locally:
pnpm build— production build succeeds (no bundler errors)pnpm exec tsc --noEmit— no TypeScript errorsact pull_request -j e2e ...— CI green locally
Design Rationale
- The
e2e.ymlCI workflow runspnpm buildbefore E2E tests. This ensures bundler errors (e.g. invalidmanualChunksformat for rolldown) are caught at PR review time, not after merging whendeploy.ymlruns. deploy.ymlruns independently on push tomainand is not replicated in CI to avoid redundancy.
Known Pitfalls
| Issue | Root Cause | Fix |
|---|---|---|
manualChunks is not a function | rolldown requires function, not object | Use manualChunks(id) { ... } in vite.config.ts |
no DOCKER_HOST warning | OrbStack socket not on default path | Set DOCKER_HOST as above |
| M-series architecture warnings | act defaults to host arch | Use --container-architecture linux/amd64 |