2021-01-07 03:47:00 -05:00
|
|
|
name: Cancel Duplicates
|
|
|
|
on:
|
|
|
|
workflow_run:
|
2021-01-29 15:29:46 -05:00
|
|
|
workflows:
|
|
|
|
- "Miscellaneous"
|
|
|
|
types:
|
|
|
|
- requested
|
2021-01-07 03:47:00 -05:00
|
|
|
|
|
|
|
jobs:
|
2021-01-29 15:29:46 -05:00
|
|
|
cancel-duplicate-runs:
|
|
|
|
name: Cancel duplicate workflow runs
|
|
|
|
runs-on: ubuntu-20.04
|
2021-01-07 03:47:00 -05:00
|
|
|
steps:
|
2021-01-29 15:29:46 -05:00
|
|
|
- name: Check number of queued tasks
|
|
|
|
id: check_queued
|
|
|
|
env:
|
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
GITHUB_REPO: ${{ github.repository }}
|
|
|
|
run: |
|
|
|
|
get_count() {
|
|
|
|
echo $(curl -s -H "Authorization: token $GITHUB_TOKEN" \
|
|
|
|
"https://api.github.com/repos/$GITHUB_REPO/actions/runs?status=$1" | \
|
|
|
|
jq ".total_count")
|
|
|
|
}
|
|
|
|
count=$(( `get_count queued` + `get_count in_progress` ))
|
|
|
|
echo "Found $count unfinished jobs."
|
|
|
|
echo "::set-output name=count::$count"
|
|
|
|
|
2021-01-24 02:10:16 -05:00
|
|
|
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
|
2021-01-29 15:29:46 -05:00
|
|
|
if: steps.check_queued.outputs.count >= 20
|
2021-01-24 02:10:16 -05:00
|
|
|
uses: actions/checkout@v2
|
2021-01-29 15:29:46 -05:00
|
|
|
|
|
|
|
- name: Cancel duplicate workflow runs
|
|
|
|
if: steps.check_queued.outputs.count >= 20
|
|
|
|
env:
|
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
GITHUB_REPOSITORY: ${{ github.repository }}
|
|
|
|
run: |
|
|
|
|
pip install click requests typing_extensions python-dateutil
|
|
|
|
python ./scripts/cancel_github_workflows.py
|