#!/usr/bin/env bash # Test GitHub Actions workflows locally using act set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)" echo "๐Ÿงช Testing GitHub Actions Workflows Locally" echo "===========================================" echo # Run diagnostics first if [ -f "$SCRIPT_DIR/diagnose-workflows.sh" ]; then bash "$SCRIPT_DIR/diagnose-workflows.sh" else echo "โš ๏ธ diagnose-workflows.sh not found, skipping diagnostics" fi echo echo "๐Ÿƒ Running workflow tests..." echo # Test lint job echo "1๏ธโƒฃ Testing lint job..." if act -W "$PROJECT_ROOT/.github/workflows/ci.yml" -j lint --dryrun; then echo "โœ… Lint job syntax valid" else echo "โŒ Lint job has issues" fi echo # Test typecheck job echo "2๏ธโƒฃ Testing typecheck job..." if act -W "$PROJECT_ROOT/.github/workflows/ci.yml" -j typecheck --dryrun; then echo "โœ… Typecheck job syntax valid" else echo "โŒ Typecheck job has issues" fi echo # Test build job echo "3๏ธโƒฃ Testing build job..." if act -W "$PROJECT_ROOT/.github/workflows/ci.yml" -j build --dryrun; then echo "โœ… Build job syntax valid" else echo "โŒ Build job has issues" fi echo echo "โœ… Workflow test complete!" echo echo "๐Ÿ’ก To actually run workflows (not just validate):" echo " npm run act:lint # Run lint job" echo " npm run act:typecheck # Run typecheck job" echo " npm run act:build # Run build job"