Skip to content

Commit 5b91714

Browse files
committed
Add release on PR merge
1 parent a7629d7 commit 5b91714

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Release
2+
3+
on:
4+
pull_request:
5+
types: [ closed ]
6+
branches: [ main ]
7+
8+
jobs:
9+
release:
10+
name: Release (on merge to main)
11+
runs-on: ubuntu-latest
12+
if: github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'main'
13+
permissions:
14+
contents: write
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v4
18+
with:
19+
fetch-depth: 0
20+
21+
- name: Compute next tag
22+
id: version
23+
shell: bash
24+
run: |
25+
set -euo pipefail
26+
latest_tag="$(git tag --list 'v*.*.*' --sort=-v:refname | head -n 1)"
27+
if [[ -z "${latest_tag}" ]]; then
28+
next_tag="v1.0.0"
29+
else
30+
version="${latest_tag#v}"
31+
IFS='.' read -r major minor patch <<< "${version}"
32+
patch=$((patch + 1))
33+
next_tag="v${major}.${minor}.${patch}"
34+
fi
35+
echo "next_tag=${next_tag}" >> "${GITHUB_OUTPUT}"
36+
37+
- name: Create GitHub Release
38+
uses: softprops/action-gh-release@v2
39+
with:
40+
tag_name: ${{ steps.version.outputs.next_tag }}
41+
name: Release ${{ steps.version.outputs.next_tag }}
42+
generate_release_notes: true

0 commit comments

Comments
 (0)