name: Test Action (Forgejo) on: schedule: # Weekly Monday at 06:00 UTC - cron: "0 6 * * 1" pull_request: branches: - main paths: - "src/**" - "action.yml" - ".forgejo/**" - "base-action/**" workflow_dispatch: concurrency: group: test-action-${{ github.ref }} cancel-in-progress: true jobs: test-agent-mode: name: Test Agent Mode on Forgejo runs-on: grunt steps: - name: Checkout uses: https://${{ secrets.READ_REPO_TOKEN }}@git.wxs.ro/xternal/checkout@v6.0.2 with: fetch-depth: 1 - name: Run Claude Code Action (agent mode) id: claude uses: ./ with: prompt: "Respond with exactly the text FORGEJO_PLATFORM_TEST_OK and nothing else. Do not use any tools." claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} github_token: ${{ secrets.FORGEJO_CLAUDE_TOKEN }} platform: "forgejo" env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} - name: Verify execution output exists run: | EXEC_FILE="${{ steps.claude.outputs.execution_file }}" if [ -z "$EXEC_FILE" ]; then echo "FAIL: execution_file output is empty" exit 1 fi if [ ! -f "$EXEC_FILE" ]; then echo "FAIL: execution file does not exist at: $EXEC_FILE" exit 1 fi echo "OK: execution file exists at: $EXEC_FILE" # Check that the output contains our test marker if grep -q "FORGEJO_PLATFORM_TEST_OK" "$EXEC_FILE"; then echo "OK: Output contains expected test marker" else echo "WARN: Test marker not found in output (Claude may have formatted differently)" echo "--- Output contents (first 50 lines) ---" head -50 "$EXEC_FILE" fi - name: Debug on failure if: failure() run: | echo "=== Debug Info ===" echo "Platform env: PLATFORM=$PLATFORM FORGEJO=$FORGEJO" echo "Server URL: $GITHUB_SERVER_URL" echo "API URL: $GITHUB_API_URL" echo "Event: ${{ github.event_name }}" echo "Actor: ${{ github.actor }}" echo "" EXEC_FILE="${{ steps.claude.outputs.execution_file }}" if [ -f "$EXEC_FILE" ]; then echo "--- Execution file contents ---" cat "$EXEC_FILE" else echo "No execution file found" fi