#!/bin/bash # Script to test Gitea Actions workflow locally using act_runner # This runs the actual .gitea/workflows/magnitude.yml file in a containerized environment set -e # Exit on error echo "=========================================" echo "Testing Gitea Actions Workflow Locally" echo "=========================================" # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Check if .env exists if [ ! -f .env ]; then echo -e "${RED}Error: .env file not found!${NC}" echo "Please create .env file with required variables" exit 1 fi # Load environment variables from .env for passing as secrets echo -e "${YELLOW}Loading environment variables from .env${NC}" export $(cat .env | grep -v '^#' | xargs) # Build secret flags for act_runner # These will be available in the workflow as secrets.* SECRET_FLAGS="" SECRET_FLAGS="$SECRET_FLAGS -s ATPROTO_CLIENT_ID=$ATPROTO_CLIENT_ID" SECRET_FLAGS="$SECRET_FLAGS -s ATPROTO_REDIRECT_URI=$ATPROTO_REDIRECT_URI" SECRET_FLAGS="$SECRET_FLAGS -s GOOGLE_API_KEY=$GOOGLE_API_KEY" SECRET_FLAGS="$SECRET_FLAGS -s DEEPGRAM_API_KEY=$DEEPGRAM_API_KEY" SECRET_FLAGS="$SECRET_FLAGS -s SURREAL_JWT_SECRET=$SURREAL_JWT_SECRET" SECRET_FLAGS="$SECRET_FLAGS -s TEST_BLUESKY_HANDLE=$TEST_BLUESKY_HANDLE" SECRET_FLAGS="$SECRET_FLAGS -s TEST_BLUESKY_PASSWORD=$TEST_BLUESKY_PASSWORD" SECRET_FLAGS="$SECRET_FLAGS -s ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY" echo -e "${YELLOW}Running Gitea Actions workflow with act_runner${NC}" echo -e "${YELLOW}This will execute .gitea/workflows/magnitude.yml${NC}" # Run act_runner in Docker to execute the workflow # - Mount Docker socket so act_runner can create containers # - Mount current directory as workspace # - Pass secrets as flags docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ -v "$(pwd):/workspace" \ -w /workspace \ -e ACTIONS_CACHE_URL="" \ gitea/act_runner:latest \ exec -W .gitea/workflows/magnitude.yml \ $SECRET_FLAGS || { echo -e "${RED}Workflow execution failed!${NC}" exit 1 } echo -e "${GREEN}=========================================${NC}" echo -e "${GREEN}Workflow executed successfully!${NC}" echo -e "${GREEN}=========================================${NC}"