-
Notifications
You must be signed in to change notification settings - Fork 0
36 lines (31 loc) · 930 Bytes
/
prune-releases.yaml
File metadata and controls
36 lines (31 loc) · 930 Bytes
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
name: Prune Old Releases
on:
workflow_call:
inputs:
releases_to_keep:
description: 'Number of latest releases to keep'
required: false
default: 3
type: number
concurrency:
group: prune-releases-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true
jobs:
prune:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Install GitHub CLI
run: |
sudo apt-get update
sudo apt-get install -y gh
- name: Delete old releases
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
KEEP=${{ inputs.releases_to_keep }}
REPO="${{ github.repository }}"
gh release list --repo "$REPO" --limit 100 | awk '{print $1}' | tail -n +$((KEEP+1)) | xargs -r -I {} gh release delete {} --repo "$REPO" --yes