@@ -2,114 +2,156 @@ name: Release
22on :
33 release :
44 types : [published]
5+ permissions : {}
56jobs :
6- release :
7+ publish :
8+ permissions :
9+ contents : write # to create release
10+ issues : write # to modify milestones
711 runs-on : ubuntu-latest
8- strategy :
9- matrix :
10- java : ['8']
1112 env :
1213 GIT_USER_NAME : puneetbehl
13- 14- GRADLE_OPTS : -Xmx1500m -Dfile.encoding=UTF-8
14+ 1515 steps :
1616 - name : Checkout repository
17- uses : actions/checkout@v2
17+ uses : actions/checkout@v3
1818 with :
1919 token : ${{ secrets.GH_TOKEN }}
20- - uses : gradle/wrapper-validation-action@v1
21- - uses : actions/cache@v2
22- with :
23- path : |
24- ~/.gradle/caches
25- key : ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
26- restore-keys : |
27- ${{ runner.os }}-gradle-
2820 - name : Set up JDK
29- uses : actions/setup-java@v1
21+ uses : actions/setup-java@v3
3022 with :
31- java-version : ${{ matrix.java }}
23+ distribution : ' adopt'
24+ java-version : ' 8'
3225 - name : Extract Target Branch
3326 id : extract_branch
3427 run : |
3528 echo "Determining Target Branch"
3629 TARGET_BRANCH=`cat $GITHUB_EVENT_PATH | jq '.release.target_commitish' | sed -e 's/^"\(.*\)"$/\1/g'`
3730 echo $TARGET_BRANCH
38- echo ::set-output name= value:: ${TARGET_BRANCH}
31+ echo " value= ${TARGET_BRANCH}" >> $GITHUB_OUTPUT
3932 - name : Set the current release version
4033 id : release_version
41- run : echo ::set-output name= release_version:: ${GITHUB_REF:11}
34+ run : echo " release_version= ${GITHUB_REF:11}" >> $GITHUB_OUTPUT
4235 - name : Run pre-release
4336 uses : ./.github/actions/pre-release
4437 with :
4538 token : ${{ secrets.GITHUB_TOKEN }}
39+ - name : Run Assemble
40+ if : success()
41+ id : assemble
42+ uses : gradle/gradle-build-action@v2
43+ with :
44+ arguments : assemble
45+ env :
46+ GRADLE_ENTERPRISE_ACCESS_KEY : ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
47+ GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
48+ GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
49+ - name : Upload Distribution
50+ if : success()
51+ uses : actions/upload-artifact@v3
52+ with :
53+ name : grails-${{ steps.release_version.outputs.release_version }}.zip
54+ path : build/distributions/grails-${{ steps.release_version.outputs.release_version }}.zip
55+ - name : Upload artifacts to the Github release
56+ if : success()
57+ id : upload_artifact
58+ uses : Roang-zero1/github-upload-release-artifacts-action@master
59+ with :
60+ args : build/distributions/grails-${{ steps.release_version.outputs.release_version }}.zip
61+ env :
62+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
63+ - name : Generate secring file
64+ if : success()
65+ env :
66+ SECRING_FILE : ${{ secrets.SECRING_FILE }}
67+ run : echo $SECRING_FILE | base64 -d > ${{ github.workspace }}/secring.gpg
4668 - name : Publish to Sonatype OSSRH
69+ id : publish
4770 if : success()
71+ uses : gradle/gradle-build-action@v2
4872 env :
73+ GRADLE_ENTERPRISE_ACCESS_KEY : ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}
74+ GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
75+ GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
4976 SONATYPE_USERNAME : ${{ secrets.SONATYPE_USERNAME }}
5077 SONATYPE_PASSWORD : ${{ secrets.SONATYPE_PASSWORD }}
78+ SONATYPE_NEXUS_URL : ${{ secrets.SONATYPE_NEXUS_URL }}
5179 SONATYPE_STAGING_PROFILE_ID : ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}
52- ARTIFACTORY_USERNAME : ${{ secrets.ARTIFACTORY_USERNAME }}
53- ARTIFACTORY_PASSWORD : ${{ secrets.ARTIFACTORY_PASSWORD }}
5480 SIGNING_KEY : ${{ secrets.SIGNING_KEY }}
5581 SIGNING_PASSPHRASE : ${{ secrets.SIGNING_PASSPHRASE }}
5682 SECRING_FILE : ${{ secrets.SECRING_FILE }}
57- run : |
58- echo $SECRING_FILE | base64 -d > secring.gpg
59- echo "Publishing Artifacts"
60- (set -x; ./gradlew -Psigning.secretKeyRingFile="${GITHUB_WORKSPACE}/secring.gpg" publishToSonatype closeAndReleaseSonatypeStagingRepository --no-daemon)
61- (set -x; ./gradlew assemble --no-daemon)
62- - name : Export Gradle Properties
63- uses : micronaut-projects/github-actions/export-gradle-properties@master
83+ with :
84+ arguments : -Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg publishToSonatype closeAndReleaseSonatypeStagingRepository
6485 - name : Run post-release
6586 if : success()
6687 uses : ./.github/actions/post-release
6788 with :
6889 token : ${{ secrets.GITHUB_TOKEN }}
6990 env :
7091 SNAPSHOT_SUFFIX : -SNAPSHOT
71- - name : Upload artifacts to the Github release
72- uses : Roang-zero1/github-upload-release-artifacts-action@master
92+ sdkman :
93+ needs : publish
94+ runs-on : ubuntu-latest
95+ permissions :
96+ contents : read
97+ steps :
98+ - name : Checkout repository
99+ uses : actions/checkout@v3
73100 with :
74- args : build/distributions/grails-${{ steps.release_version.outputs.release_version }}.zip
75- env :
76- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
77- - name : Create Message for the Grails Documentation Release
101+ token : ${{ secrets.GH_TOKEN }}
102+ ref : v${{ needs.publish.inputs.release_version }}
103+ - name : Set up JDK
104+ uses : actions/setup-java@v3
105+ with :
106+ distribution : ' adopt'
107+ java-version : ' 8'
108+ - name : Grails SDK Minor Release
78109 if : success()
79- id : grails_docs_release_message
110+ uses : gradle/gradle-build-action@v2
111+ with :
112+ arguments : sdkMinorRelease
113+ env :
114+ GVM_SDKVENDOR_KEY : ${{ secrets.GVM_SDKVENDOR_KEY }}
115+ GVM_SDKVENDOR_TOKEN : ${{ secrets.GVM_SDKVENDOR_TOKEN }}
116+ docs :
117+ needs : publish
118+ run-on : ubuntu-latest
119+ permissions :
120+ contents : read
121+ steps :
122+ - name : Prepare Input
123+ id : prep_inputs
80124 run : |
81- echo ::set-output name= value:: {\"grails_version\":\"$RELEASE_VERSION\"}
125+ echo " value= {\"grails_version\":\"$RELEASE_VERSION\"}" >> $GITHUB_OUTPUT
82126 env :
83- RELEASE_VERSION : ${{ steps.release_version.outputs.release_version }}
127+ RELEASE_VERSION : ${{ needs.publish. steps.release_version.outputs.release_version }}
84128 - name : Invoke grails-doc release workflow
85- if : success()
86- id : grails_doc
87- 129+ 88130 with :
89- workflow : Release
90- repo : grails/grails-doc
91- ref : ${{ steps.extract_branch.outputs.value }}
92- token : ${{ secrets.GH_TOKEN }}
93- inputs : ${{ steps.grails_docs_release_message.outputs.value }}
131+ workflow : Release
132+ repo : grails/grails-doc
133+ ref : ${{ needs.publish.steps.extract_branch.outputs.value }}
134+ token : ${{ secrets.GH_TOKEN }}
135+ inputs : ${{ steps.prep_inputs.outputs.value }}
136+ website :
137+ needs : publish
138+ runs-on : ubuntu-latest
139+ permissions :
140+ contents : read
141+ steps :
142+ - name : Prepare Input
143+ id : prep_inputs
144+ run : |
145+ echo "value={\"grails_version\":\"$RELEASE_VERSION\"}" >> $GITHUB_OUTPUT
146+ env :
147+ RELEASE_VERSION : ${{ needs.publish.steps.release_version.outputs.release_version }}
94148 - name : Invoke grails-static-website release workflow
95149 if : success()
96150 id : grails_static_website
97- uses : benc-uk/workflow-dispatch@v1.1
151+ uses : benc-uk/workflow-dispatch@v1.2
98152 with :
99153 workflow : Release
100154 repo : grails/grails-static-website
101155 ref : master
102156 token : ${{ secrets.GH_TOKEN }}
103- inputs : ${{ steps.grails_docs_release_message.outputs.value }}
104- - name : Grails SDK Release
105- if : success()
106- run : |
107- if $MINOR ; then
108- (set -x; ./gradlew sdkMinorRelease)
109- else
110- ( set -x; ./gradlew sdkMajorRelease)
111- fi
112- env :
113- MINOR : ${{ startsWith(steps.release_version.outputs.release_version, '3.3') || startsWith(steps.release_version.outputs.release_version, '4.1.') || contains(steps.release_version.outputs.release_version, 'M') || contains(steps.release_version.outputs.release_version, 'RC') }}
114- GVM_SDKVENDOR_KEY : ${{ secrets.GVM_SDKVENDOR_KEY }}
115- GVM_SDKVENDOR_TOKEN : ${{ secrets.GVM_SDKVENDOR_TOKEN }}
157+ inputs : ${{ steps.prep_inputs.outputs.value }}
0 commit comments