|
1 | 1 | name: Publish to Maven Central |
2 | 2 | on: |
3 | | - workflow_dispatch: |
4 | | - inputs: |
5 | | - tag: |
6 | | - description: 'Tag' |
7 | | - required: true |
8 | | - default: '0.0.0' |
| 3 | + release: |
| 4 | + types: [published] |
9 | 5 | jobs: |
10 | 6 | publish: |
11 | 7 | runs-on: ubuntu-latest |
| 8 | + if: startsWith(github.ref, 'refs/tags/') # only allow publishing tagged versions |
12 | 9 | steps: |
13 | 10 | - uses: actions/checkout@v4 |
14 | | - with: |
15 | | - ref: "refs/tags/${{ github.event.inputs.tag }}" |
16 | 11 | - uses: actions/setup-java@v4 |
17 | 12 | with: |
18 | 13 | distribution: 'zulu' |
19 | 14 | java-version: 22 |
20 | 15 | cache: 'maven' |
21 | | - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml |
22 | | - server-username: MAVEN_USERNAME # env variable for username in deploy |
23 | | - server-password: MAVEN_PASSWORD # env variable for token in deploy |
24 | | - - name: Enforce project version ${{ github.event.inputs.tag }} |
25 | | - run: mvn versions:set -B -DnewVersion=${{ github.event.inputs.tag }} |
| 16 | + server-id: central |
| 17 | + server-username: MAVEN_CENTRAL_USERNAME |
| 18 | + server-password: MAVEN_CENTRAL_PASSWORD |
| 19 | + - name: Verify project version = ${{ github.event.release.tag_name }} |
| 20 | + run: | |
| 21 | + PROJECT_VERSION=$(mvn help:evaluate "-Dexpression=project.version" -q -DforceStdout) |
| 22 | + test "$PROJECT_VERSION" = "${{ github.event.release.tag_name }}" |
26 | 23 | - name: Deploy |
27 | 24 | run: mvn deploy -B -DskipTests -Psign,deploy-central --no-transfer-progress |
28 | 25 | env: |
|
31 | 28 | --add-opens=java.base/java.lang.reflect=ALL-UNNAMED |
32 | 29 | --add-opens=java.base/java.text=ALL-UNNAMED |
33 | 30 | --add-opens=java.desktop/java.awt.font=ALL-UNNAMED |
34 | | - MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} |
35 | | - MAVEN_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} |
| 31 | + MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} |
| 32 | + MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} |
36 | 33 | MAVEN_GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }} |
37 | 34 | MAVEN_GPG_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} |
38 | 35 | MAVEN_GPG_KEY_FINGERPRINT: ${{ vars.RELEASES_GPG_KEY_FINGERPRINT }} |
0 commit comments