1
+ name : Release
2
+ on :
3
+ release :
4
+ types : [published]
5
+ env :
6
+ GIT_USER_NAME : ' grails-build'
7
+ GIT_USER_EMAIL : ' grails-build@users.noreply.github.com'
8
+ jobs :
9
+ publish :
10
+ permissions :
11
+ contents : write # to create release
12
+ issues : write # to modify milestones
13
+ runs-on : ubuntu-latest
14
+ outputs :
15
+ release_version : ${{ steps.release_version.outputs.value }}
16
+ target_branch : ${{ steps.extract_branch.outputs.value }}
17
+ env :
18
+ GIT_USER_NAME : ' grails-build'
19
+ GIT_USER_EMAIL : ' grails-build@users.noreply.github.com'
20
+ steps :
21
+ - name : " 📥 Checkout the repository"
22
+ uses : actions/checkout@v4
23
+ with :
24
+ token : ${{ secrets.GH_TOKEN }}
25
+ - name : " ☕️ Setup JDK"
26
+ uses : actions/setup-java@v4
27
+ with :
28
+ distribution : ' temurin'
29
+ java-version : ' 17'
30
+ - name : " 🐘 Setup Gradle"
31
+ uses : gradle/actions/setup-gradle@v4
32
+ - name : " 📝 Store the target branch"
33
+ id : extract_branch
34
+ run : |
35
+ echo "Determining Target Branch"
36
+ TARGET_BRANCH=${GITHUB_REF#refs/heads/}
37
+ echo $TARGET_BRANCH
38
+ echo "value=${TARGET_BRANCH}" >> $GITHUB_OUTPUT
39
+ - name : " 📝Set the current release version"
40
+ id : release_version
41
+ run : echo "value=${GITHUB_REF:11}" >> $GITHUB_OUTPUT
42
+ - name : " ⚙️ Run pre-release"
43
+ uses : micronaut-projects/github-actions/pre-release@master
44
+ with :
45
+ token : ${{ secrets.GITHUB_TOKEN }}
46
+ - name : " 🧩 Run Assemble"
47
+ if : success()
48
+ id : assemble
49
+ env :
50
+ DEVELOCITY_BUILD_CACHE_NODE_USER : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
51
+ DEVELOCITY_BUILD_CACHE_NODE_KEY : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
52
+ run : ./gradlew assemble
53
+ - name : " 📝 Generate secring file"
54
+ env :
55
+ SECRING_FILE : ${{ secrets.SECRING_FILE }}
56
+ run : echo $SECRING_FILE | base64 -d > ${{ github.workspace }}/secring.gpg
57
+ - name : " 🚀 Publish to Sonatype OSSRH"
58
+ id : publish
59
+ env :
60
+ SONATYPE_USERNAME : ${{ secrets.SONATYPE_USERNAME }}
61
+ SONATYPE_PASSWORD : ${{ secrets.SONATYPE_PASSWORD }}
62
+ SONATYPE_NEXUS_URL : ${{ secrets.SONATYPE_NEXUS_URL }}
63
+ SONATYPE_STAGING_PROFILE_ID : ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}
64
+ SIGNING_KEY : ${{ secrets.SIGNING_KEY }}
65
+ SIGNING_PASSPHRASE : ${{ secrets.SIGNING_PASSPHRASE }}
66
+ SECRING_FILE : ${{ secrets.SECRING_FILE }}
67
+ DEVELOCITY_BUILD_CACHE_NODE_USER : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
68
+ DEVELOCITY_BUILD_CACHE_NODE_KEY : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
69
+ working-directory : ./plugin
70
+ run : >
71
+ ../gradlew
72
+ -Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg
73
+ publishToSonatype
74
+ closeSonatypeStagingRepository
75
+ release :
76
+ needs : publish
77
+ runs-on : ubuntu-latest
78
+ permissions :
79
+ contents : read
80
+ steps :
81
+ - name : " 📥 Checkout repository"
82
+ uses : actions/checkout@v4
83
+ - name : " ☕️ Setup JDK"
84
+ uses : actions/setup-java@v4
85
+ with :
86
+ distribution : liberica
87
+ java-version : 17
88
+ - name : " 📥 Checkout repository"
89
+ uses : actions/checkout@v4
90
+ with :
91
+ token : ${{ secrets.GH_TOKEN }}
92
+ ref : v${{ needs.publish.outputs.release_version }}
93
+ - name : " 🐘 Setup Gradle"
94
+ uses : gradle/actions/setup-gradle@v4
95
+ with :
96
+ develocity-access-key : ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
97
+ - name : " 🏆Nexus Staging Close And Release"
98
+ env :
99
+ DEVELOCITY_BUILD_CACHE_NODE_USER : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
100
+ DEVELOCITY_BUILD_CACHE_NODE_KEY : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
101
+ SONATYPE_USERNAME : ${{ secrets.SONATYPE_USERNAME }}
102
+ SONATYPE_PASSWORD : ${{ secrets.SONATYPE_PASSWORD }}
103
+ SONATYPE_STAGING_PROFILE_ID : ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}
104
+ working-directory : ./plugin
105
+ run : >
106
+ ../gradlew
107
+ findSonatypeStagingRepository
108
+ releaseSonatypeStagingRepository
109
+ - name : " ⚙️Run post-release"
110
+ if : success()
111
+ uses : micronaut-projects/github-actions/post-release@master
112
+ with :
113
+ token : ${{ secrets.GITHUB_TOKEN }}
114
+ env :
115
+ SNAPSHOT_SUFFIX : -SNAPSHOT
116
+ docs :
117
+ needs : publish
118
+ runs-on : ubuntu-latest
119
+ permissions :
120
+ contents : write
121
+ steps :
122
+ - name : " 📥 Checkout the repository"
123
+ uses : actions/checkout@v4
124
+ with :
125
+ token : ${{ secrets.GH_TOKEN }}
126
+ ref : v${{ needs.publish.outputs.release_version }}
127
+ - name : " ☕️ Setup JDK"
128
+ uses : actions/setup-java@v4
129
+ with :
130
+ distribution : ' liberica'
131
+ java-version : ' 17'
132
+ - name : " 🐘 Setup Gradle"
133
+ uses : gradle/actions/setup-gradle@v4
134
+ - name : " 📜 Generate Documentation"
135
+ id : docs
136
+ env :
137
+ DEVELOCITY_BUILD_CACHE_NODE_USER : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
138
+ DEVELOCITY_BUILD_CACHE_NODE_KEY : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
139
+ working-directory : ./plugin
140
+ run : ../gradlew docs
141
+ - name : " 🚀 Publish to Github Pages"
142
+ id : docs
143
+ if : success()
144
+ uses : grails/github-pages-deploy-action@v2
145
+ env :
146
+ SKIP_SNAPSHOT : ${{ contains(needs.publish.outputs.release_version, 'M') }}
147
+ # if multiple releases are being done, this is the last branch - 1 version
148
+ # SKIP_LATEST: ${{ !startsWith(needs.publish.outputs.target_branch, '6.2') }}
149
+ TARGET_REPOSITORY : ${{ github.repository }}
150
+ GH_TOKEN : ${{ secrets.GH_TOKEN }}
151
+ BRANCH : gh-pages
152
+ FOLDER : plugin/build/docs
153
+ DOC_FOLDER : gh-pages
154
+ COMMIT_EMAIL : ${{ env.GIT_USER_EMAIL }}
155
+ COMMIT_NAME : ${{ env.GIT_USER_NAME }}
156
+ VERSION : ${{ needs.publish.outputs.release_version }}
0 commit comments