local-action-verification

Set up a repository for local GitHub Actions verification using act, so Jules can validate CI before pushing

Skill file

Preview skill file
---
name: local-action-verification
description: Set up a repository for local GitHub Actions verification using act, so Jules can validate CI before pushing
allowed-tools:
  - "Bash"
  - "Read"
  - "Write"
---

# Local Action Verification with act

You are setting up a repository so that Jules (or any agent) can run GitHub Actions workflows locally using [act](https://github.com/nektos/act) to verify code changes pass CI before pushing.

## What You're Setting Up

Two scripts and an agents.md section that enable local CI verification:

1. **install-act.sh** — Installs `act` if missing (platform-aware, sudo fallback)
2. **run-act.sh** — Runs `act` in the background with log polling to avoid agent timeouts
3. **AGENTS.md section** — Instructions Jules reads to know how to use these scripts

## Setup Steps

### Step 1: Copy scripts to the repository

Copy 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:

```bash
chmod +x scripts/act/install-act.sh scripts/act/run-act.sh
```

### Step 2: Add instructions to AGENTS.md

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:

```markdown
## 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
   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:
   ```bash
   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
```

### Step 3: Update .gitignore

Append these entries to `.gitignore` if they don't already exist:

```
# act artifacts
act_output.log
.secrets
```

### Step 4: Print next steps for the user

Tell the user:
1. Docker must be installed and running on any machine (or Jules VM) where verification runs
2. `act` will be auto-installed on first use via `scripts/act/install-act.sh`
3. If workflows require secrets, create a `.secrets` file (KEY=VALUE format) — never commit it
4. Commit all generated files

## Troubleshooting

- **Docker not running**: `act` requires Docker. Ensure the Docker daemon is started.
- **Image pull slow**: First run downloads ~2GB+. Use `-P ubuntu-latest=node:20-bookworm` for faster pulls.
- **ARM64 issues**: On Apple Silicon, add `--container-architecture linux/amd64` to act arguments.
- **Secrets required**: Create a `.secrets` file and pass `--secret-file .secrets` in the act arguments.
- **Timeout**: Increase with `ACT_TIMEOUT=1200 bash scripts/act/run-act.sh "..."`.

## Resource References

- [Troubleshooting Guide](resources/troubleshooting.md) — Detailed solutions for common issues

Source

Creator's repository · google-labs-code/jules-skills

View on GitHub

Security

Security checks in progress
Results will appear here once audits complete
What this skill can do
Reads your filesConnects to the internetRuns code on your machine
Checked by 3 independent security firms
Does it try to trick the AI?Not yet checkedPending · Gen Agent Trust Hub
Does it sneak in hidden code?Not yet checkedPending · Socket
Does it have known bugs?Not yet checkedPending · Snyk