1+ name : Release CI
2+
3+ on :
4+ release :
5+ types : [ created ]
6+
7+ jobs :
8+ build-test :
9+ name : Build & Test - JDK ${{ matrix.java }} on ${{ matrix.os }}
10+ strategy :
11+ fail-fast : false
12+ matrix :
13+ java : [ '8', '11', '17', '18', '21']
14+ os : [ ubuntu-latest, windows-latest ]
15+ runs-on : ${{ matrix.os }}
16+
17+ steps :
18+ - uses : actions/checkout@v4
19+
20+ - name : Setup Java
21+ uses : actions/setup-java@v4
22+ with :
23+ distribution : ' temurin'
24+ java-version : ${{ matrix.java }}
25+
26+ - name : Show Versions
27+ run : mvn -version
28+
29+ - name : Cache Maven packages
30+ uses : actions/cache@v4
31+ with :
32+ path : ~/.m2/repository
33+ key : ${{ runner.os }}-m2-${{ matrix.java }}
34+ restore-keys : ${{ runner.os }}-m2-
35+
36+ - name : Build/Test
37+ run : mvn -B clean package
38+
39+ publish :
40+ name : Publish Release
41+ needs : [ build-test ]
42+ runs-on : ubuntu-latest
43+
44+ steps :
45+ - uses : actions/checkout@v4
46+ - name : Set up Apache Maven Central
47+ uses : actions/setup-java@v4
48+ with :
49+ distribution : ' temurin'
50+ java-version : ' 11'
51+ server-id : ossrh
52+ server-username : OSSRH_USERNAME
53+ server-password : OSSRH_TOKEN
54+ gpg-private-key : ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
55+ gpg-passphrase : MAVEN_GPG_PASSPHRASE
56+
57+ - name : Publish to Apache Maven Central
58+ run : mvn deploy -DskipTests -Psign
59+ env :
60+ OSSRH_USERNAME : ${{ secrets.OSSRH_USERNAME }}
61+ OSSRH_TOKEN : ${{ secrets.OSSRH_TOKEN }}
62+ MAVEN_GPG_PASSPHRASE : ${{ secrets.MAVEN_GPG_PASSPHRASE }}
0 commit comments