1+ name : " 🖨️ Pre Release"
2+ on :
3+ workflow_dispatch :
4+ inputs :
5+ targetVersion :
6+ description : ' Expected Release Version'
7+ required : true
8+ env :
9+ GIT_USER_NAME : ' grails-build'
10+ GIT_USER_EMAIL :
' [email protected] ' 11+ jobs :
12+ publish :
13+ runs-on : ubuntu-latest
14+ permissions :
15+ contents : write
16+ packages : write
17+ steps :
18+ # - name: "💥 Purge Existing Builds - org.grails.grails-gsp"
19+ # run: |
20+ # curl -L \
21+ # -X DELETE \
22+ # -H "Accept: application/vnd.github+json" \
23+ # -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
24+ # -H "X-GitHub-Api-Version: 2022-11-28" \
25+ # https://api.github.com/orgs/${{ github.repository_owner }}/packages/maven/org.grails.grails-gsp || true
26+ - name : " 📥 Checkout repository"
27+ uses : actions/checkout@v4
28+ - name : " 🛑 Set Prevent Snapshot Publishing Flag"
29+ run : |
30+ sed -i "s/^preventSnapshotPublish.*$/preventSnapshotPublish\=true/" gradle.properties
31+ - name : " 📩 Commit flag to prevent snapshot publishing"
32+ run : |
33+ git config user.name "${{ env.GIT_USER_NAME }}"
34+ git config user.email "${{ env.GIT_USER_EMAIL }}"
35+ git add gradle.properties
36+ if ! git diff --cached --quiet; then
37+ git commit -m "[skip ci] Pre Release - ${{ github.event.inputs.targetVersion }} - Preventing Snapshot Publishing"
38+ git push origin HEAD
39+ else
40+ echo "Publishing already disabled."
41+ fi
42+ - name : " ☕️ Setup JDK"
43+ uses : actions/setup-java@v4
44+ with :
45+ distribution : ' liberica'
46+ java-version : ' 17'
47+ - name : " 🐘 Setup Gradle"
48+ uses : gradle/actions/setup-gradle@v4
49+ with :
50+ develocity-access-key : ${{ secrets.DEVELOCITY_ACCESS_KEY }}
51+ - name : " ⚙ Set version to ${{ github.event.inputs.targetVersion }}"
52+ run : |
53+ sed -i "s/^projectVersion.*$/projectVersion\=${{ github.event.inputs.targetVersion }}/" gradle.properties
54+ cat gradle.properties
55+ - name : " 🧩 Run Assemble"
56+ if : success()
57+ run : ./gradlew assemble
58+ env :
59+ DEVELOCITY_BUILD_CACHE_NODE_USER : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
60+ DEVELOCITY_BUILD_CACHE_NODE_KEY : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
61+ - name : " 🔐 Generate key file for artifact signing"
62+ env :
63+ SECRING_FILE : ${{ secrets.SECRING_FILE }}
64+ run : echo $SECRING_FILE | base64 -d > ${{ github.workspace }}/secring.gpg
65+ - name : " 📤 Publish to GitHub Packages"
66+ id : publish
67+ env :
68+ DEVELOCITY_BUILD_CACHE_NODE_USER : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_USER }}
69+ DEVELOCITY_BUILD_CACHE_NODE_KEY : ${{ secrets.GRADLE_ENTERPRISE_BUILD_CACHE_NODE_KEY }}
70+ GITHUB_USERNAME : ${{ secrets.GITHUB_ACTOR }}
71+ GITHUB_PASSWORD : ${{ secrets.GITHUB_TOKEN }}
72+ GITHUB_PUBLISH : ' true'
73+ SIGNING_KEY : ${{ secrets.SIGNING_KEY }}
74+ SIGNING_PASSPHRASE : ${{ secrets.SIGNING_PASSPHRASE }}
75+ SECRING_FILE : ${{ secrets.SECRING_FILE }}
76+ run : >
77+ ./gradlew
78+ -Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg
79+ publish
0 commit comments