874b6f20c2
Основа — Horizon (MIT). История апстрима не переносится: этот репозиторий ведёт свою.
28 lines
1.1 KiB
YAML
28 lines
1.1 KiB
YAML
name: cancel-on-close
|
|
# A closed or merged pull request's queued and running checks free the runners at once.
|
|
# pull_request_target so the token can cancel runs of pull requests from forks too;
|
|
# it checks out nothing and runs no code from the pull request.
|
|
on:
|
|
pull_request_target:
|
|
types: [closed]
|
|
permissions:
|
|
actions: write
|
|
jobs:
|
|
cancel:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Cancel the pull request's unfinished runs
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
REPO: ${{ github.repository }}
|
|
BRANCH: ${{ github.event.pull_request.head.ref }}
|
|
SHA: ${{ github.event.pull_request.head.sha }}
|
|
run: |
|
|
for status in queued in_progress waiting pending requested; do
|
|
gh run list -R "$REPO" --branch "$BRANCH" --status "$status" --limit 100 \
|
|
--json databaseId,event,headSha \
|
|
-q ".[] | select(.event == \"pull_request\" and .headSha == \"$SHA\") | .databaseId"
|
|
done | sort -u | while read -r id; do
|
|
gh run cancel -R "$REPO" "$id" || true
|
|
done
|