๐Ÿ“ฆ apache / superset

๐Ÿ“„ cancel_duplicates.yml ยท 44 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44name: Cancel Duplicates
on:
  workflow_run:
    workflows:
      - "Miscellaneous"
    types:
      - requested

jobs:
  cancel-duplicate-runs:
    name: Cancel duplicate workflow runs
    runs-on: ubuntu-24.04
    permissions:
      actions: write
      contents: read
    steps:
      - name: Check number of queued tasks
        id: check_queued
        env:
          GITHUB_TOKEN: ${{ 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 "count=$count" >> $GITHUB_OUTPUT

      - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
        if: steps.check_queued.outputs.count >= 20
        uses: actions/checkout@v6

      - name: Cancel duplicate workflow runs
        if: steps.check_queued.outputs.count >= 20
        env:
          GITHUB_TOKEN: ${{ github.token }}
          GITHUB_REPOSITORY: ${{ github.repository }}
        run: |
          pip install click requests typing_extensions python-dateutil
          python ./scripts/cancel_github_workflows.py