Skip to content

Commit 73d18be

Browse files
committed
update release workflow for maven central 2 phased commit
1 parent 90e2db2 commit 73d18be

File tree

1 file changed

+45
-7
lines changed

1 file changed

+45
-7
lines changed

.github/workflows/release.yml

Lines changed: 45 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ on:
33
release:
44
types: [published]
55
jobs:
6-
release:
7-
name: "Publish Release"
6+
stage:
7+
name: "Stage Release"
88
runs-on: ubuntu-24.04
9+
outputs:
10+
release_version: ${{ steps.release_version.outputs.value }}
911
permissions:
1012
packages: read # for pre-release workflow
1113
contents: write # to commit changes related to the release and publish documentation to gh-pages
@@ -24,9 +26,11 @@ jobs:
2426
with:
2527
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
2628
- name: "📝 Store the current release version"
29+
id: release_version
2730
run: |
2831
echo "Release version: ${GITHUB_REF:11}"
2932
echo "RELEASE_VERSION=${GITHUB_REF:11}" >> $GITHUB_ENV
33+
echo "value=${RELEASE_VERSION}" >> $GITHUB_OUTPUT
3034
- name: "⚙ Run pre-release"
3135
uses: apache/grails-github-actions/pre-release@asf
3236
- name: "🔐 Generate key file for artifact signing"
@@ -38,15 +42,49 @@ jobs:
3842
GRAILS_PUBLISH_RELEASE: 'true'
3943
NEXUS_PUBLISH_USERNAME: ${{ secrets.NEXUS_PUBLISH_USERNAME }}
4044
NEXUS_PUBLISH_PASSWORD: ${{ secrets.NEXUS_PUBLISH_PASSWORD }}
41-
NEXUS_PUBLISH_URL: ${{ secrets.NEXUS_PUBLISH_RELEASE_URL }}
42-
NEXUS_PUBLISH_STAGING_PROFILE_ID: ${{ secrets.NEXUS_PUBLISH_STAGING_PROFILE_ID }}
45+
NEXUS_PUBLISH_URL: 'https://ossrh-staging-api.central.sonatype.com/service/local/'
4346
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
4447
SIGNING_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }}
4548
run: >
4649
./gradlew
4750
-Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg
4851
publishToSonatype
49-
closeAndReleaseSonatypeStagingRepository
52+
closeSonatypeStagingRepository
53+
publish:
54+
name: "Publish Release"
55+
needs: [ stage ]
56+
environment: release
57+
runs-on: ubuntu-24.04
58+
permissions:
59+
packages: read # for pre-release workflow
60+
contents: write # to commit changes related to the release and publish documentation to gh-pages
61+
issues: write # to modify milestones
62+
pull-requests: write
63+
steps:
64+
- name: "📥 Checkout repository"
65+
uses: actions/checkout@v4
66+
with:
67+
token: ${{ secrets.GITHUB_TOKEN }}
68+
ref: v${{ needs.stage.outputs.release_version }}
69+
- name: "☕️ Setup JDK"
70+
uses: actions/setup-java@v4
71+
with:
72+
java-version: 11
73+
distribution: liberica
74+
- name: "🐘 Setup Gradle"
75+
uses: gradle/actions/setup-gradle@v4
76+
with:
77+
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
78+
- name: "📤 Release artifacts"
79+
env:
80+
GRAILS_PUBLISH_RELEASE: 'true'
81+
NEXUS_PUBLISH_USERNAME: ${{ secrets.NEXUS_PUBLISH_USERNAME }}
82+
NEXUS_PUBLISH_PASSWORD: ${{ secrets.NEXUS_PUBLISH_PASSWORD }}
83+
NEXUS_PUBLISH_URL: 'https://ossrh-staging-api.central.sonatype.com/service/local/'
84+
run: >
85+
./gradlew
86+
findSonatypeStagingRepository
87+
releaseSonatypeStagingRepository
5088
- name: "📖 Generate Documentation"
5189
run: ./gradlew docs
5290
- name: "📤 Publish Documentation to Github Pages"
@@ -55,6 +93,6 @@ jobs:
5593
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5694
GRADLE_PUBLISH_RELEASE: 'true'
5795
SOURCE_FOLDER: build/docs
58-
VERSION: ${{ env.RELEASE_VERSION }}
96+
VERSION: ${{ needs.stage.outputs.release_version }}
5997
- name: "⚙️ Run post-release"
60-
uses: apache/grails-github-actions/post-release@asf
98+
uses: apache/grails-github-actions/post-release@asf

0 commit comments

Comments
 (0)