Skip to content

Commit e1c35c6

Browse files
committed
Add release workflow.
Signed-off-by: Hiram Chirino <hiram@hiramchirino.com>
1 parent dfc6f98 commit e1c35c6

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

.github/workflows/release.yml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
release-version:
7+
description: 'Version being released'
8+
required: true
9+
branch:
10+
description: 'Branch to release from'
11+
required: true
12+
default: 'main'
13+
14+
permissions:
15+
contents: write
16+
17+
jobs:
18+
release:
19+
name: Release
20+
runs-on: ubuntu-latest
21+
22+
steps:
23+
- name: Checkout
24+
uses: actions/checkout@v4
25+
26+
- name: Setup Java
27+
uses: actions/setup-java@v4
28+
with:
29+
java-version: 11
30+
distribution: 'temurin'
31+
server-id: central
32+
server-username: MAVEN_USERNAME
33+
server-password: MAVEN_CENTRAL_TOKEN
34+
gpg-private-key: ${{ secrets.java_gpg_secret_key }}
35+
gpg-passphrase: MAVEN_GPG_PASSPHRASE
36+
37+
- id: install-secret-key
38+
name: Install gpg secret key
39+
run: |
40+
cat <(echo -e "${{ secrets.java_gpg_secret_key }}") | gpg --batch --import
41+
gpg --list-secret-keys --keyid-format LONG
42+
43+
- name: Compile
44+
run: mvn --batch-mode clean install -DskipTests
45+
46+
- name: Setup Git
47+
run: |
48+
git config --global user.name "GitHub Actions"
49+
git config --global user.email "actions@github.com"
50+
51+
- name: Set the version
52+
run: |
53+
mvn versions:set -DgenerateBackupPoms=false -DnewVersion=${{ github.event.inputs.release-version }}
54+
git add .
55+
git commit -m "Release version update ${{ github.event.inputs.release-version }}"
56+
git push
57+
git tag ${{ github.event.inputs.release-version }}
58+
git push origin ${{ github.event.inputs.release-version }}
59+
env:
60+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
61+
62+
- name: Release to Maven Central
63+
run: |
64+
mvn --batch-mode deploy -Prelease -DskipTests=true
65+
env:
66+
MAVEN_USERNAME: ${{ secrets.central_username }}
67+
MAVEN_CENTRAL_TOKEN: ${{ secrets.central_password }}
68+
MAVEN_GPG_PASSPHRASE: ${{ secrets.java_gpg_passphrase }}
69+
70+
- name: Back to Snapshot
71+
run: |
72+
mvn versions:set -DgenerateBackupPoms=false -DnewVersion=9.9.9.9-SNAPSHOT
73+
git add .
74+
git commit -m "Snapshot version update"
75+
git push
76+
env:
77+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)