From 535daa290b19e95773bf7048d6bb6f1ae34325d9 Mon Sep 17 00:00:00 2001 From: JSRCode <139555610+jsrcode@users.noreply.github.com> Date: Mon, 22 Dec 2025 23:27:16 +0800 Subject: [PATCH 1/2] =?UTF-8?q?test:=20=E9=AA=8C=E8=AF=81=20PR=20=E8=AF=84?= =?UTF-8?q?=E8=AE=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/README.md b/.github/workflows/README.md index 90b4292..cc751a7 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -2,6 +2,8 @@ 本项目使用两步 workflow 实现跨仓库 PR 的评论功能。 +> 测试评论功能:验证 PR Check Comment workflow 是否正常工作。 + ## Workflows ### 1. PR Check (`pr-check.yml`) From 49fccaa0c3cbf94263382e40897d15b03263a577 Mon Sep 17 00:00:00 2001 From: JSRCode <139555610+jsrcode@users.noreply.github.com> Date: Mon, 22 Dec 2025 23:39:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(ci):=20=E4=BB=8E=20artifact=20=E4=B8=AD?= =?UTF-8?q?=E6=8F=90=E5=8F=96=20PR=20=E5=8F=B7=E4=BB=A5=E6=94=AF=E6=8C=81?= =?UTF-8?q?=20fork=20PR=20=E8=AF=84=E8=AE=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pr-check-comment.yml | 18 ++++++++++++++---- .github/workflows/pr-check.yml | 3 ++- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/.github/workflows/pr-check-comment.yml b/.github/workflows/pr-check-comment.yml index cba9e12..d8d3c3b 100644 --- a/.github/workflows/pr-check-comment.yml +++ b/.github/workflows/pr-check-comment.yml @@ -65,13 +65,13 @@ jobs: const marker = ''; const platforms = ['ubuntu-22.04', 'windows-latest', 'macos-arm64', 'macos-x64']; - const prNumber = context.payload.workflow_run.pull_requests[0]?.number; + let prNumber = context.payload.workflow_run.pull_requests[0]?.number; + if (!prNumber) { - console.log('No PR number found'); - return; + console.log('PR number not in workflow_run payload, trying to extract from artifacts...'); } - console.log('Updating comment for PR', prNumber); + console.log('Updating comment for PR', prNumber || '(to be determined)'); const defaultState = () => Object.fromEntries( platforms.map(p => [p, { @@ -96,6 +96,11 @@ jobs: const platformState = JSON.parse(fs.readFileSync(stateFile, 'utf8')); state[platform] = platformState; console.log('Loaded state for', platform); + + if (!prNumber && platformState.pr_number) { + prNumber = parseInt(platformState.pr_number, 10); + console.log('Extracted PR number from artifact:', prNumber); + } } catch (e) { console.error('Failed to parse state for', platform, e); } @@ -103,6 +108,11 @@ jobs: } } + if (!prNumber) { + console.log('No PR number found in payload or artifacts'); + return; + } + const statusLabelZh = (entry) => { if (entry.status === 'pending') return '⏳ 运行中...'; if (entry.status === 'success') return '✅ 直接通过'; diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 54e73a1..ac8c86b 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -145,7 +145,8 @@ jobs: "recheck": "${{ steps.recheck.outcome }}", "artifact": "pr-check-${{ matrix.name }}", "run_url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}", - "status": "${{ steps.check.outcome == 'success' && 'success' || (steps.check.outcome == 'failure' && steps.recheck.outcome == 'success' && 'fix_pass' || 'failed') }}" + "status": "${{ steps.check.outcome == 'success' && 'success' || (steps.check.outcome == 'failure' && steps.recheck.outcome == 'success' && 'fix_pass' || 'failed') }}", + "pr_number": "${{ github.event.pull_request.number }}" } EOF cat state.json