Skip to content
Run CI/CD Pipeline Locally logo

Run CI/CD Pipeline Locally

Run the Wavecraft CI checks locally. Prefer the native `cargo xtask` commands for speed; use Docker + `act` only when validating GitHub Actions workflows or Linux-specific behavior.

SKILL.md

Full skill instructions

Skill: Run GitHub Actions CI/​CD pipeline Locally

Use this skill to test CI workflows locally before pushing to GitHub. Preferred path: run the native cargo xtask commands (fast, no Docker). Use Docker + act only when you need to validate workflow YAML or Linux-specific behavior.

Workflow parity requirement ✅

Keep an xtask mirror for every workflow file under .github/​workflows/. If a workflow changes (or a new one is added), update or add an xtask so local runs stay fast and consistent. Use Docker + act only for workflow/​YAML-specific checks or Linux-only behavior.

Workflow filePreferred local mirrorNotes
ci.ymlcargo xtask ci-checkFull lint + test suite
template-validation.ymlcargo xtask validate-templateCLI template generation validation
release.ymlcargo xtask releaseBuild/​sign/​notarize pipeline
cli-release.ymlcargo xtask releaseMirror release steps where applicable; add a dedicated xtask if workflow diverges
continuous-deploy.ymlcargo xtask releaseUse release pipeline for parity; add a publish-focused xtask if needed

Preferred: Native xtask (fast, no Docker)

These commands mirror CI checks without container overhead and are the recommended way to validate locally.

# Pre-push validation (lint + tests)
cargo xtask ci-check

# Template validation (mirrors template-validation.yml)
cargo xtask validate-template

# Optional targeted runs
cargo xtask lint
cargo xtask test

Prerequisites

  • Rust toolchain (stable, with clippy + rustfmt)
  • Node.js + npm (for UI checks)

Docker-based (only when needed)

Use Docker + act when validating GitHub Actions workflow changes, Linux-specific behavior, or job orchestration.

⚠️ Agent Handoff: If you don't have terminal execution tools available, delegate to an agent who does (Coder or Tester) to run the Docker/​act commands below.

Prerequisites (Docker path)

  • Docker Desktop must be installed and running
  • act must be installed: brew install act
  • Wavecraft custom CI image (recommended): See the “Building the Custom Image” section below

Quick Start for Wavecraft (Docker)

Wavecraft provides a custom Docker image with all dependencies pre-installed:

# Build the custom image (one-time setup)
docker build --platform linux/​amd64 -t wavecraft-ci:latest .github/​skills/​run-ci-pipeline-locally/

# Run a specific job
act -j check-engine -W .github/​workflows/​ci.yml \
    --container-architecture linux/​amd64 \
    -P ubuntu-latest=wavecraft-ci:latest \
    --pull=false \
    --artifact-server-path ./​tmp/​act-artifacts

Available CI Jobs

JobDescriptionLocal Testing
check-uiPrettier, ESLint, TypeScript✅ Works
test-uiVitest unit tests✅ Works
prepare-engineBuild UI + compile Rust✅ Works
check-enginecargo fmt + clippy✅ Works
test-enginecargo test✅ Works

Run Full Pipeline Locally (Docker)

# Run entire CI workflow
act -W .github/​workflows/​ci.yml \
    --container-architecture linux/​amd64 \
    -P ubuntu-latest=wavecraft-ci:latest \
    --pull=false \
    --artifact-server-path ./​tmp/​act-artifacts

Building the Custom Image

The custom image includes:

  • Ubuntu 22.04
  • Node.js 20.x
  • Rust stable with rustfmt + clippy
  • GTK, WebKit, X11 development libraries
# Build for linux/​amd64 (required for Apple Silicon Macs)
docker build --platform linux/​amd64 -t wavecraft-ci:latest \
    .github/​skills/​run-ci-pipeline-locally/

# Verify the image
docker images | grep wavecraft-ci

Note: Build takes ~5-10 minutes on first run.

Commands Reference (Docker)

Important: Do not combine act commands with head or tail — follow the logs directly.

List Available Jobs

act -l

Run Specific Workflow

act -W .github/​workflows/​ci.yml

Run Specific Job

act -j <job-name>

Run on Specific Event

act push
act pull_request

Dry Run (Preview Without Executing)

act -n

Pass Secrets

# Use GitHub CLI token
act -s GITHUB_TOKEN="$(gh auth token)"

# Use secrets file (.secrets with KEY=value format)
act --secret-file .secrets

Key Flags for Wavecraft

FlagPurpose
--container-architecture linux/​amd64Required on Apple Silicon Macs
-P ubuntu-latest=wavecraft-ci:latestUse custom image with dependencies
--pull=falseUse local image, don't pull from Docker Hub
-W .github/​workflows/​ci.ymlSpecify workflow file
-j <job-name>Run specific job
--artifact-server-path <dir>Enable local artifact upload/​download

Limitations (Docker)

Artifact Upload/​Download

By default, actions/​upload-artifact and actions/​download-artifact fail locally because they require GitHub's artifact server. Use the --artifact-server-path flag to enable a local artifact server:

act ... --artifact-server-path /​tmp/​act-artifacts

Artifacts will be stored in the specified directory and can be downloaded by subsequent jobs.

Caching Differences

  • act doesn't share cache with GitHub Actions
  • First local run compiles everything from scratch
  • Subsequent runs with --reuse can be faster

Network Dependencies

Some steps require network access:

  • cargo downloads crates
  • npm downloads packages
  • Git repos are cloned

Debugging Failed Runs

# Verbose output
act -v

# Very verbose output
act -vv

# Keep containers running after failure for inspection
act --reuse

# Interactive shell in the container
docker exec -it <container-id> bash

Common Issues

IssueSolution
Docker not runningStart Docker Desktop
--container-architecture errorsEnsure Docker supports linux/​amd64 emulation
Image pull timeoutUse --pull=false with local image
Permission denied on filesCheck Docker volume mounts
Job uses macos-latestSkip job or test manually
Missing Linux packagesRebuild custom image
Rust compilation slowExpected on first run; use --reuse for subsequent
ACTIONS_RUNTIME_TOKEN errorAdd --artifact-server-path /​tmp/​act-artifacts

Updating the Custom Image

If CI dependencies change (new apt packages, Rust version, etc.):

  1. Edit the Dockerfile at .github/​skills/​run-ci-pipeline-locally/​Dockerfile
  2. Rebuild: docker build --platform linux/​amd64 -t wavecraft-ci:latest .github/​skills/​run-ci-pipeline-locally/
  3. Test: act -j check-engine ... --pull=false

More DevOps & CI/CD skills

Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.

6K 472.6K
View

Set up tracing, logging, and monitoring for deployed ADK agents across Cloud Trace, BigQuery, and third-party platforms.

6K 472.6K
View

Enterprise Azure infrastructure architect generating Bicep or Terraform from workload descriptions.

1.5K 454.3K
View
azure-kubernetes logo
DevOps & CI/CD

azure-kubernetes

Plan and configure production-ready Azure Kubernetes Service clusters with Day-0 and Day-1 best practices.

1.5K 447.1K
View

Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics. Rigid grids, extreme type scale contrast, utilitarian color, analog degradation effects. For data-heavy dashboards, portfolios, or editorial sites that need to feel like declassified blueprints.

92.7K 354.9K
View
just-scrape logo
DevOps & CI/CD

just-scrape

Web search, scraping, extraction, crawling, and monitoring via ScrapeGraph AI CLI.

69 245K
View

Skill for working with Firebase Hosting (Classic). Use this when you want to deploy static web apps, Single Page Apps (SPAs), or simple microservices. Do NOT use for Firebase App Hosting.

462 159.7K
View

Deploy and manage web apps with Firebase App Hosting. Use this skill when deploying Next.js/Angular apps with backends.

462 159.1K
View
deploy-to-vercel logo
DevOps & CI/CD

deploy-to-vercel

Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".

31.9K 146.6K
View
programmatic-seo logo
DevOps & CI/CD

programmatic-seo

Build SEO-optimized pages at scale using templates, data, and proven playbook patterns.

53.3K 140.1K
View

Design and build isolated, reusable Convex backend components with clear boundaries and app-facing wrappers.

63 123.5K
View

Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".

31.9K 116.1K
View

Coding & apps AI tools

Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View
Imagica logo
Coding & apps

Imagica

Build a no-code AI app in minutes.

Freemium
View
E
Coding & apps

Emergent.sh

An IDE for code migration from legacy to modern frameworks through coding agents.

Freemium
View
Wonder Dynamics logo
Coding & apps

Wonder Dynamics

Automate CGI animation in live-action scenes

Paid
View
M
Coding & apps

Mixo

Launch a website in seconds with AI.

Paid
View
AI Code Convert logo
Coding & apps

AI Code Convert

Streamline Your Coding Experience with AI Code Helper

Free
View