Skip to content

Commit dc131d7

Browse files
authored
ci: add release workflow with automatic semantic versioning (#30)
1 parent 230b449 commit dc131d7

1 file changed

Lines changed: 28 additions & 5 deletions

File tree

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,24 @@
1-
name: Publish to Maven Central
1+
name: Release
22

33
on:
4-
release:
5-
types: [ created ]
4+
workflow_dispatch:
5+
inputs:
6+
force-major:
7+
description: 'Force major version bump'
8+
required: false
9+
type: boolean
10+
default: false
611

712
jobs:
8-
publish:
13+
release:
914
runs-on: ubuntu-latest
1015
permissions:
11-
contents: read
16+
contents: write
1217

1318
steps:
1419
- uses: actions/checkout@v4
20+
with:
21+
fetch-depth: 0
1522

1623
- name: Set up JDK 21
1724
uses: actions/setup-java@v4
@@ -22,6 +29,14 @@ jobs:
2229
- name: Setup Gradle
2330
uses: gradle/actions/setup-gradle@v4
2431

32+
- name: Calculate and create tag
33+
id: version
34+
uses: mathieudutour/github-tag-action@v6.2
35+
with:
36+
github_token: ${{ secrets.GITHUB_TOKEN }}
37+
default_bump: ${{ inputs.force-major && 'major' || 'patch' }}
38+
release_branches: master
39+
2540
- name: Build with Gradle
2641
run: ./gradlew build
2742

@@ -39,6 +54,14 @@ jobs:
3954
JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
4055
JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
4156

57+
- name: Create GitHub Release
58+
env:
59+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
60+
run: |
61+
gh release create "${{ steps.version.outputs.new_tag }}" \
62+
--title "${{ steps.version.outputs.new_tag }}" \
63+
--generate-notes
64+
4265
- name: Upload JReleaser logs
4366
if: always()
4467
uses: actions/upload-artifact@v4

0 commit comments

Comments
 (0)