local-action-verification

Configurer un dépôt pour la vérification locale des GitHub Actions à l'aide de act, afin que Jules puisse valider le CI avant de pousser

npx skills add https://github.com/google-labs-code/jules-skills --skill local-action-verification

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

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:

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

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

Plus de skills de google-labs-code

typed-service-contracts
google-labs-code
Norme d'architecture pour la création de services TypeScript robustes et type-safe utilisant le modèle « Spec and Handler ». À utiliser lors de la création de CLI, de bibliothèques ou de systèmes complexes…
stitch::code-to-design
google-labs-code
Convertir du code frontend (Vite, React, etc.) en un Stitch Design en enchaînant l'extraction HTML statique, l'extraction du système de design et le téléchargement de fichiers. **TOUJOURS** utiliser ceci…
react-vite-dashboard
google-labs-code
Convertissez des designs Stitch en tableaux de bord React + Vite de production avec TanStack Query, des jetons accessibles depuis DESIGN.md et des modèles prêts pour le Web3 (ethers/viem).
stitch::extract-design-md
google-labs-code
Extraire un système de design complet (DESIGN.md) directement à partir du code source frontend — React, Vue, Svelte, Angular, HTML/CSS simple, ou tout framework web.…
remotion
google-labs-code
We need to translate the given English text into French, preserving the name "remotion" (which appears as "Remotion" in the text, but we preserve it as is). The instruction says: "Preserve product names, protocol names, URLs, numbers, and technical terms." So "Remotion" is a product name, keep it. Also "Stitch" is a product name? It says "Stitch app designs" - likely a product name, keep as "Stitch". Also "ScreenSlide", "WalkthroughComposition" are component names, keep as is. "zoom effects", "fade transitions", "text overlays" are technical terms, translate? The instruction says "technical terms" - but these are common terms. However, the instruction says "Preserve ... technical terms" - meaning do not translate? Actually it says "Preserve product names, protocol names, URLs, numbers, and technical terms." So technical terms should be preserved as is. But "zoom effects" might be considered a technical term? Possibly keep as "zoom effects
ink
google-labs-code
Moteur de rendu terminal Ink pour json-render qui transforme des spécifications JSON en interfaces utilisateur terminal interactives. À utiliser lorsque vous travaillez avec @json-render/ink, construisez des interfaces utilisateur terminal à partir de…
tdd-red-green-refactor
google-labs-code
Cette compétence implémente un cadre structurel pour la programmation assistée par IA afin de garantir que chaque ligne de code soit vérifiable, typée et utile.
automate-github-issues
google-labs-code
Configurer le triage et la résolution automatisés des issues GitHub à l'aide d'agents de codage Jules parallèles