mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 06:14:59 +00:00
Scripts Directory
This directory contains utility scripts for development and testing.
Available Scripts
run-act.sh
Run GitHub Actions workflows locally using act.
Prerequisites:
- Docker installed and running
actCLI tool installed
Installing act:
# macOS (Homebrew)
brew install act
# Linux (curl)
curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash
# Windows (Chocolatey)
choco install act-cli
Usage:
# Run default CI workflow
npm run act
# Or directly:
./scripts/run-act.sh
# Run specific workflow
./scripts/run-act.sh -w ci.yml
# Run only a specific job
./scripts/run-act.sh -w ci.yml -j lint
./scripts/run-act.sh -w ci.yml -j test-e2e
# Simulate different events
./scripts/run-act.sh -e pull_request
# List available workflows
./scripts/run-act.sh -l
# Show help
./scripts/run-act.sh -h
Common Use Cases:
-
Test CI pipeline before pushing:
npm run act -
Debug e2e test failures:
./scripts/run-act.sh -w ci.yml -j test-e2e -
Test lint fixes:
./scripts/run-act.sh -w ci.yml -j lint -
Simulate PR checks:
./scripts/run-act.sh -e pull_request
Notes:
- First run will be slow as Docker images are downloaded
- Act runs workflows in Docker containers that simulate GitHub Actions runners
- Some features may not work exactly like GitHub Actions (e.g., certain actions, secrets)
- Check
.actrcor pass-Pflag to customize Docker images used
Troubleshooting:
If you encounter issues:
-
Docker not running:
# Make sure Docker is running docker ps -
Permission issues:
# Make sure script is executable chmod +x scripts/run-act.sh -
Out of disk space:
# Clean up Docker images docker system prune -a -
Workflow doesn't run:
# List workflows to verify name ./scripts/run-act.sh -l
setup-packages.cjs
Sets up the package system for the project. This script is automatically run during postinstall.
Usage:
npm run setup-packages
Adding New Scripts
When adding new scripts:
- Make them executable:
chmod +x scripts/your-script.sh - Add appropriate help/usage information
- Document them in this README
- Consider adding npm script aliases in
package.json