Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit f57fe45

Browse files
committed
[skip ci] copy the staged release workflow from the data-mapping project
1 parent fe2af79 commit f57fe45

File tree

1 file changed

+91
-16
lines changed

1 file changed

+91
-16
lines changed

.github/workflows/release.yml

Lines changed: 91 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,19 @@ name: "Release"
22
on:
33
release:
44
types: [published]
5+
env:
6+
GIT_USER_NAME: grails-build
7+
GIT_USER_EMAIL: [email protected]
58
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 }}
714
runs-on: ubuntu-24.04
815
permissions:
9-
contents: read
16+
contents: write
1017
packages: read
11-
env:
12-
GIT_USER_NAME: grails-build
13-
GIT_USER_EMAIL: [email protected]
1418
steps:
1519
- name: "📥 Checkout repository"
1620
uses: actions/checkout@v4
@@ -23,16 +27,30 @@ jobs:
2327
uses: gradle/actions/setup-gradle@v4
2428
with:
2529
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
2639
- name: "📝 Store the current release version"
2740
id: release_version
2841
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
3148
- name: "🔐 Generate key file for artifact signing"
3249
env:
3350
SECRING_FILE: ${{ secrets.SECRING_FILE }}
3451
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
3654
env:
3755
GITHUB_MAVEN_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
3856
GRAILS_PUBLISH_RELEASE: 'true'
@@ -43,12 +61,72 @@ jobs:
4361
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
4462
SIGNING_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }}
4563
run: >
46-
./gradlew
47-
-Psigning.secretKeyRingFile="${GITHUB_WORKSPACE}/secring.gpg"
64+
./gradlew --no-build-cache
65+
-Psigning.secretKeyRingFile=${{ github.workspace }}/secring.gpg
4866
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"
51105
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"
52130
env:
53131
GITHUB_MAVEN_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
54132
run: ./gradlew docs:docs
@@ -75,7 +153,4 @@ jobs:
75153
FOLDER: docs/build/docs
76154
GH_TOKEN: ${{ secrets.GH_TOKEN }}
77155
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

Comments
 (0)