3
3
release :
4
4
types : [published]
5
5
jobs :
6
- release :
7
- name : " Publish Release"
6
+ stage :
7
+ name : " Stage Release"
8
8
runs-on : ubuntu-24.04
9
+ outputs :
10
+ release_version : ${{ steps.release_version.outputs.value }}
9
11
permissions :
10
12
packages : read # for pre-release workflow
11
13
contents : write # to commit changes related to the release and publish documentation to gh-pages
24
26
with :
25
27
develocity-access-key : ${{ secrets.DEVELOCITY_ACCESS_KEY }}
26
28
- name : " 📝 Store the current release version"
29
+ id : release_version
27
30
run : |
28
31
echo "Release version: ${GITHUB_REF:11}"
29
32
echo "RELEASE_VERSION=${GITHUB_REF:11}" >> $GITHUB_ENV
33
+ echo "value=${RELEASE_VERSION}" >> $GITHUB_OUTPUT
30
34
- name : " ⚙ Run pre-release"
31
35
uses : apache/grails-github-actions/pre-release@asf
32
36
- name : " 🔐 Generate key file for artifact signing"
@@ -38,15 +42,49 @@ jobs:
38
42
GRAILS_PUBLISH_RELEASE : ' true'
39
43
NEXUS_PUBLISH_USERNAME : ${{ secrets.NEXUS_PUBLISH_USERNAME }}
40
44
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/'
43
46
SIGNING_KEY : ${{ secrets.SIGNING_KEY }}
44
47
SIGNING_PASSPHRASE : ${{ secrets.SIGNING_PASSPHRASE }}
45
48
run : >
46
49
./gradlew
47
50
-Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg
48
51
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
50
88
- name : " 📖 Generate Documentation"
51
89
run : ./gradlew docs
52
90
- name : " 📤 Publish Documentation to Github Pages"
55
93
GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
56
94
GRADLE_PUBLISH_RELEASE : ' true'
57
95
SOURCE_FOLDER : build/docs
58
- VERSION : ${{ env.RELEASE_VERSION }}
96
+ VERSION : ${{ needs.stage.outputs.release_version }}
59
97
- 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