1
1
name : Build
2
2
on :
3
3
[push]
4
+
5
+ env :
6
+ JAVA_VERSION : 21
7
+
4
8
jobs :
5
9
build :
6
10
name : Build
7
11
runs-on : ubuntu-latest
8
- if : " !contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
12
+ permissions :
13
+ id-token : write # Required for the attestations step
14
+ contents : write # Required for the release step
15
+ attestations : write # Required for the attestations step
16
+ packages : write # Required for the deploy to GitHub Packages step
9
17
steps :
10
18
- uses : actions/checkout@v4
11
19
with :
12
20
fetch-depth : 0
13
- - uses : actions/setup-java@v3
21
+ - uses : actions/setup-java@v4
14
22
with :
15
- java-version : 21
23
+ java-version : ${{ env.JAVA_VERSION }}
16
24
distribution : temurin
17
25
cache : ' maven'
26
+ server-id : central
27
+ server-username : MAVEN_CENTRAL_USERNAME
28
+ server-password : MAVEN_CENTRAL_PASSWORD
18
29
gpg-private-key : ${{ secrets.RELEASES_GPG_PRIVATE_KEY }}
19
30
gpg-passphrase : MAVEN_GPG_PASSPHRASE
31
+
20
32
- name : Cache SonarCloud packages
21
- uses : actions/cache@v3
33
+ uses : actions/cache@v4
22
34
with :
23
35
path : ~/.sonar/cache
24
36
key : ${{ runner.os }}-sonar
25
37
restore-keys : ${{ runner.os }}-sonar
38
+
26
39
- name : Build and Test
27
40
run : >
28
- mvn -B verify
41
+ mvn -B verify --no-transfer-progress
29
42
jacoco:report
30
43
org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
31
44
-Pcoverage
@@ -35,35 +48,43 @@ jobs:
35
48
env :
36
49
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
37
50
SONAR_TOKEN : ${{ secrets.SONAR_TOKEN }}
38
- - name : Deploy to GitHub Packages
51
+
52
+ - name : Deploy to Maven Central
39
53
if : startsWith(github.ref, 'refs/tags/')
40
- run : mvn -B deploy -Psign,deploy-github -DskipTests --no-transfer-progress
54
+ run : mvn -B deploy -Psign,deploy-central -DskipTests --no-transfer-progress
41
55
env :
42
- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
56
+ MAVEN_CENTRAL_USERNAME : ${{ secrets.MAVEN_CENTRAL_USERNAME }}
57
+ MAVEN_CENTRAL_PASSWORD : ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
43
58
MAVEN_GPG_PASSPHRASE : ${{ secrets.RELEASES_GPG_PASSPHRASE }}
44
- - uses : actions/setup-java@v3
59
+ MAVEN_GPG_KEY : ${{ secrets.RELEASES_GPG_PRIVATE_KEY }}
60
+ MAVEN_GPG_KEY_FINGERPRINT : ${{ vars.RELEASES_GPG_KEY_FINGERPRINT }}
61
+
62
+ - uses : actions/setup-java@v4
45
63
if : startsWith(github.ref, 'refs/tags/')
46
64
with :
47
- java-version : 21
65
+ java-version : ${{ env.JAVA_VERSION }}
48
66
distribution : temurin
49
67
cache : ' maven'
50
- server-id : ossrh
51
- server-username : MAVEN_USERNAME
52
- server-password : MAVEN_PASSWORD
53
- - name : Deploy to OSSRH
68
+
69
+ - name : Deploy to GitHub Packages
54
70
if : startsWith(github.ref, 'refs/tags/')
55
- run : mvn -B deploy -Psign,deploy-central -DskipTests --no-transfer-progress
71
+ run : mvn -B deploy -Psign,deploy-github -DskipTests --no-transfer-progress
56
72
env :
57
- MAVEN_OPTS : >
58
- --add-opens=java.base/java.util=ALL-UNNAMED
59
- --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
60
- --add-opens=java.base/java.text=ALL-UNNAMED
61
- --add-opens=java.desktop/java.awt.font=ALL-UNNAMED
62
- MAVEN_USERNAME : ${{ secrets.OSSRH_USERNAME }}
63
- MAVEN_PASSWORD : ${{ secrets.OSSRH_PASSWORD }}
73
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
64
74
MAVEN_GPG_PASSPHRASE : ${{ secrets.RELEASES_GPG_PASSPHRASE }}
75
+ MAVEN_GPG_KEY : ${{ secrets.RELEASES_GPG_PRIVATE_KEY }}
76
+ MAVEN_GPG_KEY_FINGERPRINT : ${{ vars.RELEASES_GPG_KEY_FINGERPRINT }}
77
+
78
+ - name : Attest
79
+ if : startsWith(github.ref, 'refs/tags/')
80
+ uses : actions/attest-build-provenance@v2
81
+ with :
82
+ subject-path : |
83
+ target/tiny-oauth2-client-*.jar
84
+ target/tiny-oauth2-client-*.pom
85
+
65
86
- name : Release
66
87
if : startsWith(github.ref, 'refs/tags/')
67
- uses : softprops/action-gh-release@v1
88
+ uses : softprops/action-gh-release@v2
68
89
with :
69
90
generate_release_notes : true
0 commit comments