@@ -2,15 +2,19 @@ name: "Release"
22on :
33 release :
44 types : [published]
5+ env :
6+ GIT_USER_NAME : grails-build
7+ 58jobs :
6- release :
9+ publish :
10+ name : " Publish to Sonatype Staging Repository"
11+ outputs :
12+ release_version : ${{ steps.release_version.outputs.value }}
13+ target_branch : ${{ steps.extract_branch.outputs.value }}
714 runs-on : ubuntu-24.04
815 permissions :
9- contents : read
16+ contents : write
1017 packages : read
11- env :
12- GIT_USER_NAME : grails-build
13- 1418 steps :
1519 - name : " 📥 Checkout repository"
1620 uses : actions/checkout@v4
@@ -23,16 +27,30 @@ jobs:
2327 uses : gradle/actions/setup-gradle@v4
2428 with :
2529 develocity-access-key : ${{ secrets.DEVELOCITY_ACCESS_KEY }}
30+ - name : " ⚙️ Run pre-release"
31+ uses : grails/github-actions/pre-release@main
32+ - name : " 🔍 Determine Target Branch"
33+ id : extract_branch
34+ run : |
35+ echo "Determining Target Branch"
36+ TARGET_BRANCH=`cat $GITHUB_EVENT_PATH | jq '.release.target_commitish' | sed -e 's/^"\(.*\)"$/\1/g'`
37+ echo $TARGET_BRANCH
38+ echo "value=${TARGET_BRANCH}" >> $GITHUB_OUTPUT
2639 - name : " 📝 Store the current release version"
2740 id : release_version
2841 run : echo "value=${GITHUB_REF:11}" >> $GITHUB_OUTPUT
29- - name : " ⚙️ Run pre-release"
30- uses : grails/github-actions/pre-release@v3
42+ - name : " 🧩 Run Assemble"
43+ if : success()
44+ id : assemble
45+ env :
46+ GITHUB_MAVEN_PASSWORD : ${{ secrets.GITHUB_TOKEN }}
47+ run : ./gradlew --refresh-dependencies assemble
3148 - name : " 🔐 Generate key file for artifact signing"
3249 env :
3350 SECRING_FILE : ${{ secrets.SECRING_FILE }}
3451 run : echo $SECRING_FILE | base64 -d > ${{ github.workspace }}/secring.gpg
35- - name : " 📤 Publish to Sonatype - close and release staging repository"
52+ - name : " 📤 Publish to and close Sonatype staging repository"
53+ id : publish
3654 env :
3755 GITHUB_MAVEN_PASSWORD : ${{ secrets.GITHUB_TOKEN }}
3856 GRAILS_PUBLISH_RELEASE : ' true'
@@ -43,12 +61,72 @@ jobs:
4361 SIGNING_KEY : ${{ secrets.SIGNING_KEY }}
4462 SIGNING_PASSPHRASE : ${{ secrets.SIGNING_PASSPHRASE }}
4563 run : >
46- ./gradlew
47- -Psigning.secretKeyRingFile="${GITHUB_WORKSPACE} /secring.gpg"
64+ ./gradlew --no-build-cache
65+ -Psigning.secretKeyRingFile=${{ github.workspace }} /secring.gpg
4866 publishToSonatype
49- closeAndReleaseSonatypeStagingRepository
50- - name : " 🔨 Build Documentation"
67+ closeSonatypeStagingRepository
68+ release :
69+ environment : release
70+ name : " Release Sonatype Staging Repository"
71+ needs : publish
72+ runs-on : ubuntu-24.04
73+ permissions :
74+ contents : write
75+ packages : read
76+ steps :
77+ - name : " 📥 Checkout repository"
78+ uses : actions/checkout@v4
79+ with :
80+ ref : v${{ needs.publish.outputs.release_version }}
81+ - name : " ☕️ Setup JDK"
82+ uses : actions/setup-java@v4
83+ with :
84+ java-version : 17
85+ distribution : liberica
86+ - name : " 🐘 Setup Gradle"
87+ uses : gradle/actions/setup-gradle@v4
88+ with :
89+ develocity-access-key : ${{ secrets.DEVELOCITY_ACCESS_KEY }}
90+ - name : " 🚀 Release Sonatype Staging Repository"
91+ env :
92+ GITHUB_MAVEN_PASSWORD : ${{ secrets.GITHUB_TOKEN }}
93+ GRAILS_PUBLISH_RELEASE : ' true'
94+ NEXUS_PUBLISH_USERNAME : ${{ secrets.NEXUS_PUBLISH_USERNAME }}
95+ NEXUS_PUBLISH_PASSWORD : ${{ secrets.NEXUS_PUBLISH_PASSWORD }}
96+ NEXUS_PUBLISH_URL : ${{ secrets.NEXUS_PUBLISH_RELEASE_URL }}
97+ NEXUS_PUBLISH_STAGING_PROFILE_ID : ${{ secrets.NEXUS_PUBLISH_STAGING_PROFILE_ID }}
98+ SIGNING_KEY : ${{ secrets.SIGNING_KEY }}
99+ SIGNING_PASSPHRASE : ${{ secrets.SIGNING_PASSPHRASE }}
100+ run : >
101+ ./gradlew
102+ findSonatypeStagingRepository
103+ releaseSonatypeStagingRepository
104+ - name : " ⚙️ Run post-release"
51105 if : success()
106+ uses : grails/github-actions/post-release@main
107+ docs :
108+ environment : release
109+ name : " Publish Documentation"
110+ needs : publish
111+ runs-on : ubuntu-24.04
112+ permissions :
113+ contents : write
114+ packages : read
115+ steps :
116+ - name : " 📥 Checkout repository"
117+ uses : actions/checkout@v4
118+ with :
119+ ref : v${{ needs.publish.outputs.release_version }}
120+ - name : " ☕️ Setup JDK"
121+ uses : actions/setup-java@v4
122+ with :
123+ distribution : ' liberica'
124+ java-version : ' 17'
125+ - name : " 🐘 Setup Gradle"
126+ uses : gradle/actions/setup-gradle@v4
127+ with :
128+ develocity-access-key : ${{ secrets.DEVELOCITY_ACCESS_KEY }}
129+ - name : " 📖 Generate documentation"
52130 env :
53131 GITHUB_MAVEN_PASSWORD : ${{ secrets.GITHUB_TOKEN }}
54132 run : ./gradlew docs:docs
75153 FOLDER : docs/build/docs
76154 GH_TOKEN : ${{ secrets.GH_TOKEN }}
77155 TARGET_REPOSITORY : ${{ steps.docs_target.outputs.value }}
78- VERSION : ${{ steps.release_version.outputs.release_version }}
79- - name : " ⚙️ Run post-release"
80- if : success()
81- uses : grails/github-actions/post-release@v3
156+ VERSION : ${{ needs.publish.outputs.release_version }}
0 commit comments