@@ -2,7 +2,7 @@ name: Build and Deploy Java Parser
22
33on :
44 push :
5- branches : [develop]
5+ branches : [develop, main ]
66 tags : ['v*']
77
88jobs :
@@ -13,17 +13,33 @@ jobs:
1313 - name : Checkout code
1414 uses : actions/checkout@v4
1515
16- - name : Install ANTLR4 and Maven
16+ - name : Set up Java 21
17+ uses : actions/setup-java@v4
18+ with :
19+ distribution : ' temurin'
20+ java-version : ' 21'
21+ server-id : central
22+ server-username : MAVEN_USERNAME
23+ server-password : MAVEN_PASSWORD
24+ gpg-private-key : ${{ secrets.GPG_PRIVATE_KEY }}
25+ gpg-passphrase : MAVEN_GPG_PASSPHRASE
26+
27+ - name : Configure GPG for batch mode
1728 run : |
18- sudo apt-get update
19- sudo apt-get install -y maven
20- make dev
29+ echo "allow-loopback-pinentry" >> ~/.gnupg/gpg-agent.conf
30+ echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf
31+ gpgconf --kill gpg-agent
2132
22- - name : Import GPG key
23- uses : crazy-max/ghaction-import-gpg@v6
24- with :
25- gpg_private_key : ${{ secrets.GPG_PRIVATE_KEY }}
26- passphrase : ${{ secrets.GPG_PASSPHRASE }}
33+ - name : Verify GPG key
34+ run : |
35+ gpg --list-secret-keys
36+ echo "Testing GPG signing..."
37+ echo "test" | gpg --batch --pinentry-mode loopback --passphrase "$MAVEN_GPG_PASSPHRASE" --clearsign > /dev/null && echo "GPG signing works!"
38+ env :
39+ MAVEN_GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
40+
41+ - name : Install ANTLR4
42+ run : make dev
2743
2844 - name : Set SNAPSHOT version (develop branch)
2945 if : github.ref == 'refs/heads/develop'
3248 BASE_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout | sed 's/-SNAPSHOT//')
3349 mvn versions:set -DnewVersion="${BASE_VERSION}-SNAPSHOT" -DgenerateBackupPoms=false
3450
51+ - name : Set release version (main branch)
52+ if : github.ref == 'refs/heads/main'
53+ run : |
54+ cd java
55+ BASE_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout | sed 's/-SNAPSHOT//')
56+ mvn versions:set -DnewVersion="${BASE_VERSION}" -DgenerateBackupPoms=false
57+
3558 - name : Set release version (tag)
3659 if : startsWith(github.ref, 'refs/tags/v')
3760 run : |
@@ -49,18 +72,18 @@ jobs:
4972 key : ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
5073 restore-keys : ${{ runner.os }}-m2
5174
52- - name : Deploy SNAPSHOT to OSSRH (develop branch)
75+ - name : Deploy SNAPSHOT to Sonatype Snapshots
5376 if : github.ref == 'refs/heads/develop'
54- run : cd java && mvn clean deploy --settings ../.github/settings.xml
77+ run : cd java && mvn clean deploy -DskipCentralPublishing=true
5578 env :
56- SONATYPE_USERNAME : ${{ secrets.SONATYPE_USERNAME }}
57- SONATYPE_PASSWORD : ${{ secrets.SONATYPE_PASSWORD }}
58- GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
79+ MAVEN_USERNAME : ${{ secrets.SONATYPE_USERNAME }}
80+ MAVEN_PASSWORD : ${{ secrets.SONATYPE_PASSWORD }}
81+ MAVEN_GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
5982
60- - name : Deploy Release to Maven Central (tag)
61- if : startsWith(github.ref, 'refs/tags/v')
62- run : cd java && mvn clean deploy --settings ../.github/settings.xml
83+ - name : Deploy Release to Central Portal
84+ if : github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')
85+ run : cd java && mvn clean deploy
6386 env :
64- SONATYPE_USERNAME : ${{ secrets.SONATYPE_USERNAME }}
65- SONATYPE_PASSWORD : ${{ secrets.SONATYPE_PASSWORD }}
66- GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
87+ MAVEN_USERNAME : ${{ secrets.SONATYPE_USERNAME }}
88+ MAVEN_PASSWORD : ${{ secrets.SONATYPE_PASSWORD }}
89+ MAVEN_GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
0 commit comments