@@ -2,15 +2,19 @@ name: "Release"
2
2
on :
3
3
release :
4
4
types : [published]
5
+ env :
6
+ GIT_USER_NAME : grails-build
7
+
5
8
jobs :
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 }}
7
14
runs-on : ubuntu-24.04
8
15
permissions :
9
- contents : read
16
+ contents : write
10
17
packages : read
11
- env :
12
- GIT_USER_NAME : grails-build
13
-
14
18
steps :
15
19
- name : " 📥 Checkout repository"
16
20
uses : actions/checkout@v4
@@ -23,16 +27,30 @@ jobs:
23
27
uses : gradle/actions/setup-gradle@v4
24
28
with :
25
29
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
26
39
- name : " 📝 Store the current release version"
27
40
id : release_version
28
41
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
31
48
- name : " 🔐 Generate key file for artifact signing"
32
49
env :
33
50
SECRING_FILE : ${{ secrets.SECRING_FILE }}
34
51
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
36
54
env :
37
55
GITHUB_MAVEN_PASSWORD : ${{ secrets.GITHUB_TOKEN }}
38
56
GRAILS_PUBLISH_RELEASE : ' true'
@@ -43,12 +61,72 @@ jobs:
43
61
SIGNING_KEY : ${{ secrets.SIGNING_KEY }}
44
62
SIGNING_PASSPHRASE : ${{ secrets.SIGNING_PASSPHRASE }}
45
63
run : >
46
- ./gradlew
47
- -Psigning.secretKeyRingFile="${GITHUB_WORKSPACE} /secring.gpg"
64
+ ./gradlew --no-build-cache
65
+ -Psigning.secretKeyRingFile=${{ github.workspace }} /secring.gpg
48
66
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"
51
105
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"
52
130
env :
53
131
GITHUB_MAVEN_PASSWORD : ${{ secrets.GITHUB_TOKEN }}
54
132
run : ./gradlew docs:docs
75
153
FOLDER : docs/build/docs
76
154
GH_TOKEN : ${{ secrets.GH_TOKEN }}
77
155
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