.PHONY: build build-manager build-runner build-web run-manager run-runner run cleanup cleanup-manager cleanup-runner clean test # Build all build: clean-bin build-manager build-runner # Build manager build-manager: clean-bin build-web go build -o bin/manager ./cmd/manager # Build runner build-runner: clean-bin GOOS=linux GOARCH=amd64 go build -o bin/runner ./cmd/runner # Build web UI build-web: clean-web cd web && npm install && npm run build # Cleanup manager (database and storage) cleanup-manager: @echo "Cleaning up manager database and storage..." @rm -f jiggablend.db 2>/dev/null || true @rm -f jiggablend.db-shm 2>/dev/null || true @rm -f jiggablend.db-wal 2>/dev/null || true @rm -rf jiggablend-storage 2>/dev/null || true @echo "Manager cleanup complete" # Cleanup runner (workspaces and secrets) cleanup-runner: @echo "Cleaning up runner workspaces and secrets..." @rm -rf jiggablend-workspaces jiggablend-workspace* *workspace* runner-secrets*.json 2>/dev/null || true @echo "Runner cleanup complete" # Cleanup both manager and runner cleanup: cleanup-manager cleanup-runner # Run all parallel run: cleanup-manager cleanup-runner build-manager build-runner @echo "Starting manager and runner in parallel..." @echo "Press Ctrl+C to stop both..." @trap 'kill $$MANAGER_PID $$RUNNER_PID 2>/dev/null; exit' INT TERM; \ FIXED_REGISTRATION_TOKEN=test-token ENABLE_LOCAL_AUTH=true LOCAL_TEST_EMAIL=test@example.com LOCAL_TEST_PASSWORD=testpassword bin/manager & \ MANAGER_PID=$$!; \ REGISTRATION_TOKEN=test-token bin/runner & \ RUNNER_PID=$$!; \ wait $$MANAGER_PID $$RUNNER_PID # Run manager # Note: ENABLE_LOCAL_AUTH enables local user registration/login # LOCAL_TEST_EMAIL and LOCAL_TEST_PASSWORD create a test user on startup (if it doesn't exist) run-manager: cleanup-manager build-manager FIXED_REGISTRATION_TOKEN=test-token ENABLE_LOCAL_AUTH=true LOCAL_TEST_EMAIL=test@example.com LOCAL_TEST_PASSWORD=testpassword bin/manager # Run runner run-runner: cleanup-runner build-runner REGISTRATION_TOKEN=test-token bin/runner # Clean bin build artifacts clean-bin: rm -rf bin/ # Clean web build artifacts clean-web: rm -rf web/dist/ # Run tests test: go test ./... -timeout 30s