Skip to content

Commit 27ce50d

Browse files
committed
🚀 ✨ feat(workflows): Add prune releases workflow to manage old releases
1 parent 7057753 commit 27ce50d

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
on:
2+
workflow_dispatch:
3+
4+
push:
5+
branches:
6+
- main
7+
- stage
8+
- 'feature/**'
9+
- 'bugfix/**'
10+
- 'fix/**'
11+
- 'hotfix/**'
12+
- 'release/**'
13+
- 'dependabot/**'
14+
- 'renovate/**'
15+
- 'chore/**'
16+
- 'test/**'
17+
pull_request:
18+
types: [labeled, synchronize, opened, reopened, ready_for_review]
19+
branches:
20+
- main
21+
- stage
22+
- 'feature/**'
23+
- 'bugfix/**'
24+
- 'fix/**'
25+
- 'hotfix/**'
26+
- 'release/**'
27+
- 'dependabot/**'
28+
- 'renovate/**'
29+
- 'chore/**'
30+
- 'test/**'
31+
32+
jobs:
33+
prune_releases:
34+
uses: variablesoftware/github-workflows/.github/workflows/prune-releases.yml@main
35+
with:
36+
releases_to_keep: 5 # Optional, defaults to 3
37+
secrets: inherit
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Prune Old Releases
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
releases_to_keep:
7+
description: 'Number of latest releases to keep'
8+
required: false
9+
default: 3
10+
type: number
11+
12+
jobs:
13+
prune:
14+
runs-on: ubuntu-latest
15+
permissions:
16+
contents: write
17+
steps:
18+
- name: Checkout
19+
uses: actions/checkout@v4
20+
21+
- name: Set up GitHub CLI
22+
uses: cli/cli-action@v2
23+
24+
- name: Delete old releases
25+
env:
26+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
27+
run: |
28+
KEEP=${{ inputs.releases_to_keep }}
29+
REPO="${{ github.repository }}"
30+
gh release list --repo "$REPO" --limit 100 | awk '{print $1}' | tail -n +$((KEEP+1)) | xargs -r -I {} gh release delete {} --repo "$REPO" --yes

0 commit comments

Comments
 (0)