mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-03-05 21:20:12 +00:00
Currently the claude review action will be skipped if any tests have failed. This is not really necessary, it will be more efficient to allow claude to review while still waiting for tests. This accounts for scenario where there is an expected visual baseline change, but the PR author doesn't want to regenerate baselines until everything is approved and ready to merge (as generating right away before you know whether changes will be requested can be a hassle). ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-5882-ci-allow-Claude-review-even-when-Playwright-and-Vitest-checks-have-failed-27f6d73d365081ccbcdaff7104edc2fd) by [Unito](https://www.unito.io)
89 lines
3.1 KiB
YAML
89 lines
3.1 KiB
YAML
name: Claude PR Review
|
|
|
|
permissions:
|
|
contents: read
|
|
pull-requests: write
|
|
issues: write
|
|
id-token: write
|
|
statuses: write
|
|
|
|
on:
|
|
pull_request:
|
|
types: [labeled]
|
|
|
|
jobs:
|
|
wait-for-ci:
|
|
runs-on: ubuntu-latest
|
|
if: github.event.label.name == 'claude-review'
|
|
outputs:
|
|
should-proceed: ${{ steps.check-status.outputs.proceed }}
|
|
steps:
|
|
- name: Wait for other CI checks
|
|
uses: lewagon/wait-on-check-action@e106e5c43e8ca1edea6383a39a01c5ca495fd812
|
|
with:
|
|
ref: ${{ github.event.pull_request.head.sha }}
|
|
check-regexp: '^(lint-and-format|test|playwright-tests)'
|
|
wait-interval: 30
|
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Check if we should proceed
|
|
id: check-status
|
|
run: |
|
|
CHECK_RUNS=$(gh api repos/${{ github.repository }}/commits/${{ github.event.pull_request.head.sha }}/check-runs --jq '.check_runs[] | select(.name | test("lint-and-format")) | {name, conclusion}')
|
|
|
|
if echo "$CHECK_RUNS" | grep -Eq '"conclusion": "(failure|cancelled|timed_out|action_required)"'; then
|
|
echo "Some CI checks failed - skipping Claude review"
|
|
echo "proceed=false" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "All CI checks passed - proceeding with Claude review"
|
|
echo "proceed=true" >> $GITHUB_OUTPUT
|
|
fi
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
claude-review:
|
|
needs: wait-for-ci
|
|
if: needs.wait-for-ci.outputs.should-proceed == 'true'
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 30
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: 0
|
|
ref: refs/pull/${{ github.event.pull_request.number }}/head
|
|
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: 10
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
cache: 'pnpm'
|
|
|
|
- name: Install dependencies for analysis tools
|
|
run: |
|
|
pnpm install -g typescript @vue/compiler-sfc
|
|
|
|
- name: Run Claude PR Review
|
|
uses: anthropics/claude-code-action@v1.0.6
|
|
with:
|
|
label_trigger: "claude-review"
|
|
prompt: |
|
|
Read the file .claude/commands/comprehensive-pr-review.md and follow ALL the instructions exactly.
|
|
|
|
CRITICAL: You must post individual inline comments using the gh api commands shown in the file.
|
|
DO NOT create a summary comment.
|
|
Each issue must be posted as a separate inline comment on the specific line of code.
|
|
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
claude_args: "--max-turns 256 --allowedTools 'Bash(git:*),Bash(gh api:*),Bash(gh pr:*),Bash(gh repo:*),Bash(jq:*),Bash(echo:*),Read,Write,Edit,Glob,Grep,WebFetch'"
|
|
env:
|
|
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
COMMIT_SHA: ${{ github.event.pull_request.head.sha }}
|
|
BASE_SHA: ${{ github.event.pull_request.base.sha }}
|
|
REPOSITORY: ${{ github.repository }}
|