Files
claude-code-action/.forgejo/workflows/test-action.yml
T
Vlad MocanuandClaude Opus 4.6 4954e96cc5 feat: add Claude auto-merge to upstream-sync workflow
- New merge-upstream job: creates branch, merges upstream, runs Claude
  agent mode to review, resolve conflicts, run tests, and create a PR
- Dynamic fork impact analysis: computes overlap between fork-modified
  files and upstream-changed files to assess conflict risk
- Claude reviews ALL upstream changes for fork compatibility (renamed
  imports, changed APIs, GitHub-only assumptions) not just conflicts
- Maintainability principle: minimize fork divergence, prefer adapters
- Remove ANTHROPIC_API_KEY (using OAuth token only)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 11:55:51 +02:00

74 lines
2.3 KiB
YAML

# Generated by KCL v1.34.3 - DO NOT EDIT
# Source: .forgejo/kcl-ci/main.k
# kcl-ci local: ~/stuff/gitrepos/wxs/actions/kcl-ci
# kcl-ci remote: https://git.wxs.ro/actions/kcl-ci
name: Test Action (Forgejo)
'on':
schedule:
- 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
- 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
- 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"
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