Set up a repository for local GitHub Actions verification using act, so Jules can validate CI before pushing
npx skills add https://github.com/google-labs-code/jules-skills --skill local-action-verification
You are setting up a repository so that Jules (or any agent) can run GitHub Actions workflows locally using act to verify code changes pass CI before pushing.
Two scripts and an agents.md section that enable local CI verification:
act if missing (platform-aware, sudo fallback)act in the background with log polling to avoid agent timeoutsCopy the scripts/ directory from this skill into the target repository at scripts/act/:
Target structure:
scripts/act/
├── install-act.sh
└── run-act.sh
Make sure the scripts are executable:
chmod +x scripts/act/install-act.sh scripts/act/run-act.sh
Append the following section to the repository's AGENTS.md file (create it if it doesn't exist). This is how Jules discovers the local verification capability:
## Local CI Verification
Before pushing code or opening a PR, verify changes pass CI locally using `act`.
### Prerequisites
- Docker must be running
- If `act` is not installed, run: `bash scripts/act/install-act.sh`
### How to Verify
1. Read `.github/workflows/` to find the CI workflow and identify the job ID
2. Run the verification script:
bash scripts/act/run-act.sh "push -j <JOB_ID>"
With matrix: `bash scripts/act/run-act.sh "push -j <JOB_ID> --matrix <KEY>:<VALUE>"`
3. If the run fails, read the log output, fix the code, and re-run
4. After verification, clean up:
rm -f act_output.log
git checkout <any unintended file changes>
### Configuration
- Timeout: `ACT_TIMEOUT=900 bash scripts/act/run-act.sh "..."` (default: 600s)
- Poll interval: `ACT_POLL=15 bash scripts/act/run-act.sh "..."` (default: 10s)
- Custom image: pass `-P ubuntu-latest=node:20-bookworm` in the arguments for faster pulls
Append these entries to .gitignore if they don't already exist:
# act artifacts
act_output.log
.secrets
Tell the user:
act will be auto-installed on first use via scripts/act/install-act.sh.secrets file (KEY=VALUE format) — never commit itact requires Docker. Ensure the Docker daemon is started.-P ubuntu-latest=node:20-bookworm for faster pulls.--container-architecture linux/amd64 to act arguments..secrets file and pass --secret-file .secrets in the act arguments.ACT_TIMEOUT=1200 bash scripts/act/run-act.sh "...".Take google-labs-code/local-action-verification from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.