From 2263f80c4b106779b624e037f0d0dbdc3f9ea3ac Mon Sep 17 00:00:00 2001 From: jiangyuanshu <317787106@qq.com> Date: Fri, 20 Mar 2026 20:23:09 +0800 Subject: [PATCH 1/2] test pr-cancel --- .github/workflows/pr-cancel.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pr-cancel.yml b/.github/workflows/pr-cancel.yml index 25476b31de..b4b628228b 100644 --- a/.github/workflows/pr-cancel.yml +++ b/.github/workflows/pr-cancel.yml @@ -10,6 +10,7 @@ permissions: jobs: cancel: name: Cancel In-Progress Workflows + if: github.event.pull_request.merged == false runs-on: ubuntu-latest steps: - name: Cancel PR Build and System Test From 848ed1b6f1598521d6540ac6bcfc5f8f4f9b2baa Mon Sep 17 00:00:00 2001 From: jiangyuanshu <317787106@qq.com> Date: Fri, 20 Mar 2026 20:41:01 +0800 Subject: [PATCH 2/2] fix the bug of pr-cancel --- .github/workflows/pr-cancel.yml | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/.github/workflows/pr-cancel.yml b/.github/workflows/pr-cancel.yml index b4b628228b..989e40def0 100644 --- a/.github/workflows/pr-cancel.yml +++ b/.github/workflows/pr-cancel.yml @@ -1,7 +1,7 @@ name: Cancel PR Workflows on Close on: - pull_request: + pull_request_target: types: [ closed ] permissions: @@ -23,20 +23,16 @@ jobs: for (const workflowId of workflows) { for (const status of ['in_progress', 'queued']) { - const runs = await github.paginate( - github.rest.actions.listWorkflowRuns, - { - owner: context.repo.owner, - repo: context.repo.repo, - workflow_id: workflowId, - status, - event: 'pull_request', - per_page: 100, - }, - (response) => response.data.workflow_runs - ); + const { data } = await github.rest.actions.listWorkflowRuns({ + owner: context.repo.owner, + repo: context.repo.repo, + workflow_id: workflowId, + status, + event: 'pull_request', + per_page: 100, + }); - for (const run of runs) { + for (const run of data.workflow_runs) { const isTargetPr = !run.pull_requests?.length || run.pull_requests.some((pr) => pr.number === prNumber); if (run.head_sha === headSha && isTargetPr) { await github.rest.actions.cancelWorkflowRun({