Skip to content

Commit 999a66d

Browse files
committed
ci: updates to the release workflow from the grails-core release process
1 parent c7c86db commit 999a66d

File tree

2 files changed

+56
-67
lines changed

2 files changed

+56
-67
lines changed

.github/workflows/release.yml

Lines changed: 55 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -118,56 +118,48 @@ jobs:
118118
permissions:
119119
contents: write
120120
runs-on: ubuntu-latest
121-
outputs:
122-
extract_repository_name: ${{ steps.extract_repository_name.outputs.repository_name }}
123121
steps:
124-
- name: "Extract repository name"
125-
id: extract_repository_name
126-
run: |
127-
echo "repository_name=${GITHUB_REPOSITORY##*/}" >> $GITHUB_OUTPUT
128122
- name: "📥 Checkout repository"
129123
uses: actions/checkout@v4
130124
with:
131125
token: ${{ secrets.GITHUB_TOKEN }}
132-
ref: ${{ github.ref_name }}
133-
path: ${{ steps.extract_repository_name.outputs.repository_name }}
126+
ref: v${{ needs.publish.outputs.release_version }}
127+
path: ${{ needs.publish.outputs.extract_repository_name }}
134128
- name: "🗑️ Remove unnecessary files"
135129
run: |
136-
rm -f ${{ steps.extract_repository_name.outputs.repository_name }}/gradle/wrapper/gradle-wrapper.jar
137-
rm -f ${{ steps.extract_repository_name.outputs.repository_name }}/gradle/wrapper/gradle-wrapper.properties
138-
rm -f ${{ steps.extract_repository_name.outputs.repository_name }}/gradlew
139-
rm -f ${{ steps.extract_repository_name.outputs.repository_name }}/gradlew.bat
140-
rm -f ${{ steps.extract_repository_name.outputs.repository_name }}/.asf.yaml
130+
rm -f ${{ needs.publish.outputs.extract_repository_name }}/gradle/wrapper/gradle-wrapper.jar
131+
rm -f ${{ needs.publish.outputs.extract_repository_name }}/gradle/wrapper/gradle-wrapper.properties
132+
rm -f ${{ needs.publish.outputs.extract_repository_name }}/gradlew
133+
rm -f ${{ needs.publish.outputs.extract_repository_name }}/gradlew.bat
134+
rm -f ${{ needs.publish.outputs.extract_repository_name }}/.asf.yaml
141135
- name: "Download CHECKSUMS.txt and rename to CHECKSUMS"
142136
env:
143137
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
144138
run: |
145-
cd ${{ steps.extract_repository_name.outputs.repository_name }}
146-
release_url=$(gh release view ${{ github.ref_name }} --json assets --repo ${{ github.repository }} --jq '.assets[] | select(.name == "CHECKSUMS.txt") | .url')
139+
cd ${{ needs.publish.outputs.extract_repository_name }}
140+
release_url=$(gh release view v${{ needs.publish.outputs.release_version }} --json assets --repo ${{ github.repository }} --jq '.assets[] | select(.name == "CHECKSUMS.txt") | .url')
147141
curl -L -H "Authorization: token $GH_TOKEN" -o CHECKSUMS "$release_url"
148142
- name: "Download PUBLISHED_ARTIFACTS.txt and rename to PUBLISHED_ARTIFACTS"
149143
env:
150144
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
151145
run: |
152-
cd ${{ steps.extract_repository_name.outputs.repository_name }}
153-
release_url=$(gh release view ${{ github.ref_name }} --json assets --repo ${{ github.repository }} --jq '.assets[] | select(.name == "PUBLISHED_ARTIFACTS.txt") | .url')
146+
cd ${{ needs.publish.outputs.extract_repository_name }}
147+
release_url=$(gh release view v${{ needs.publish.outputs.release_version }} --json assets --repo ${{ github.repository }} --jq '.assets[] | select(.name == "PUBLISHED_ARTIFACTS.txt") | .url')
154148
curl -L -H "Authorization: token $GH_TOKEN" -o PUBLISHED_ARTIFACTS "$release_url"
155149
- name: "Download BUILD_DATE.txt and rename to BUILD_DATE"
156150
env:
157151
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
158152
run: |
159-
cd ${{ steps.extract_repository_name.outputs.repository_name }}
160-
release_url=$(gh release view ${{ github.ref_name }} --json assets --repo ${{ github.repository }} --jq '.assets[] | select(.name == "BUILD_DATE.txt") | .url')
153+
cd ${{ needs.publish.outputs.extract_repository_name }}
154+
release_url=$(gh release view v${{ needs.publish.outputs.release_version }} --json assets --repo ${{ github.repository }} --jq '.assets[] | select(.name == "BUILD_DATE.txt") | .url')
161155
curl -L -H "Authorization: token $GH_TOKEN" -o BUILD_DATE "$release_url"
162156
- name: "Ensure source files use common date"
163157
run: |
164-
SOURCE_DATE_EPOCH=$(cat ${{ steps.extract_repository_name.outputs.repository_name }}/BUILD_DATE)
158+
SOURCE_DATE_EPOCH=$(cat ${{ needs.publish.outputs.extract_repository_name }}/BUILD_DATE)
165159
find . -depth \( -type f -o -type d \) -exec touch -d "@${SOURCE_DATE_EPOCH}" {} +
166160
- name: "📦 Create source distribution ZIP"
167161
run: |
168-
version="${{ github.ref_name }}"
169-
version="${version#v}" # Strip 'v' prefix
170-
zip -r "apache-${{ steps.extract_repository_name.outputs.repository_name }}-${version}-incubating-src.zip" ${{ steps.extract_repository_name.outputs.repository_name }} -x '${{ steps.extract_repository_name.outputs.repository_name }}/.git/*' -x '${{ steps.extract_repository_name.outputs.repository_name }}/.github/*'
162+
zip -r "apache-${{ needs.publish.outputs.extract_repository_name }}-${{ needs.publish.outputs.release_version }}-incubating-src.zip" ${{ needs.publish.outputs.extract_repository_name }} -x '${{ needs.publish.outputs.extract_repository_name }}/.git/*' -x '${{ needs.publish.outputs.extract_repository_name }}/.github/*'
171163
- name: '🔐 Set up GPG'
172164
run: |
173165
echo "${{ secrets.GRAILS_GPG_KEY }}" | gpg --batch --import
@@ -178,69 +170,40 @@ jobs:
178170
env:
179171
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}
180172
run: |
181-
version="${{ github.ref_name }}"
182-
version="${version#v}" # Strip 'v' prefix
183-
gpg --default-key "${GPG_KEY_ID}" --batch --yes --pinentry-mode loopback --armor --detach-sign apache-${{ steps.extract_repository_name.outputs.repository_name }}-${version}-incubating-src.zip
173+
gpg --default-key "${GPG_KEY_ID}" --batch --yes --pinentry-mode loopback --armor --detach-sign ./apache-${{ needs.publish.outputs.extract_repository_name }}-${{ needs.publish.outputs.release_version }}-incubating-src.zip
184174
- name: "📦 Create source distribution checksum"
185175
run: |
186-
version="${{ github.ref_name }}"
187-
version="${version#v}" # Strip 'v' prefix
188-
sha512sum apache-${{ steps.extract_repository_name.outputs.repository_name }}-${version}-incubating-src.zip > "apache-${{ steps.extract_repository_name.outputs.repository_name }}-${version}-incubating-src.zip.sha512"
176+
sha512sum ./apache-${{ needs.publish.outputs.extract_repository_name }}-${{ needs.publish.outputs.release_version }}-incubating-src.zip > "apache-${{ needs.publish.outputs.extract_repository_name }}-${{ needs.publish.outputs.release_version }}-incubating-src.zip.sha512"
177+
cat ./apache-${{ needs.publish.outputs.extract_repository_name }}-${{ needs.publish.outputs.release_version }}-incubating-src.zip.sha512
189178
- name: "🚀 Upload ZIP and Signature to GitHub Release"
190179
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631
191180
with:
192-
tag_name: ${{ github.ref_name }}
181+
tag_name: v${{ needs.publish.outputs.release_version }}
193182
files: |
194-
apache-${{ steps.extract_repository_name.outputs.repository_name }}-*-incubating-src.zip
195-
apache-${{ steps.extract_repository_name.outputs.repository_name }}-*-incubating-src.zip.sha512
196-
apache-${{ steps.extract_repository_name.outputs.repository_name }}-*-incubating-src.zip.asc
183+
apache-${{ needs.publish.outputs.extract_repository_name }}-${{ needs.publish.outputs.release_version }}-incubating-src.zip
184+
apache-${{ needs.publish.outputs.extract_repository_name }}-${{ needs.publish.outputs.release_version }}-incubating-src.zip.sha512
185+
apache-${{ needs.publish.outputs.extract_repository_name }}-${{ needs.publish.outputs.release_version }}-incubating-src.zip.asc
197186
- name: "Remove CHECKSUMS.txt asset from release"
198187
env:
199188
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
200189
run: |
201190
set -e
202-
cd ${{ steps.extract_repository_name.outputs.repository_name }}
203-
gh release --repo ${{ github.repository }} delete-asset ${{ github.ref_name }} CHECKSUMS.txt --yes
191+
cd ${{ needs.publish.outputs.extract_repository_name }}
192+
gh release --repo ${{ github.repository }} delete-asset v${{ needs.publish.outputs.release_version }} CHECKSUMS.txt --yes
204193
- name: "Remove BUILD_DATE.txt asset from release"
205194
env:
206195
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
207196
run: |
208197
set -e
209-
cd ${{ steps.extract_repository_name.outputs.repository_name }}
210-
gh release --repo ${{ github.repository }} delete-asset ${{ github.ref_name }} BUILD_DATE.txt --yes
198+
cd ${{ needs.publish.outputs.extract_repository_name }}
199+
gh release --repo ${{ github.repository }} delete-asset v${{ needs.publish.outputs.release_version }} BUILD_DATE.txt --yes
211200
- name: "Remove PUBLISHED_ARTIFACTS.txt asset from release"
212201
env:
213202
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
214203
run: |
215204
set -e
216-
cd ${{ steps.extract_repository_name.outputs.repository_name }}
217-
gh release --repo ${{ github.repository }} delete-asset ${{ github.ref_name }} PUBLISHED_ARTIFACTS.txt --yes
218-
release:
219-
name: "Close Release"
220-
environment: release
221-
needs: [publish, source, docs]
222-
runs-on: ubuntu-latest
223-
permissions:
224-
contents: write
225-
issues: write
226-
pull-requests: write
227-
steps:
228-
- name: "📥 Checkout repository"
229-
uses: actions/checkout@v4
230-
with:
231-
token: ${{ secrets.GITHUB_TOKEN }}
232-
ref: v${{ needs.publish.outputs.release_version }}
233-
- name: "☕️ Setup JDK"
234-
uses: actions/setup-java@v4
235-
with:
236-
distribution: liberica
237-
java-version: '17.0.15'
238-
- name: "🐘 Setup Gradle"
239-
uses: gradle/actions/setup-gradle@v4
240-
with:
241-
develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
242-
- name: "⚙️ Run post-release"
243-
uses: apache/grails-github-actions/post-release@asf
205+
cd ${{ needs.publish.outputs.extract_repository_name }}
206+
gh release --repo ${{ github.repository }} delete-asset v${{ needs.publish.outputs.release_version }} PUBLISHED_ARTIFACTS.txt --yes
244207
docs:
245208
environment: docs
246209
name: "Publish Documentation"
@@ -274,4 +237,30 @@ jobs:
274237
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
275238
GRADLE_PUBLISH_RELEASE: 'true'
276239
SOURCE_FOLDER: build/docs
277-
VERSION: ${{ needs.publish.outputs.release_version }}
240+
VERSION: ${{ needs.publish.outputs.release_version }}
241+
release:
242+
name: "Close Release"
243+
environment: release
244+
needs: [ publish, source, docs ]
245+
runs-on: ubuntu-latest
246+
permissions:
247+
contents: write # required for gradle.properties revert
248+
issues: write # required for milestone closing
249+
pull-requests: write # to open PR
250+
steps:
251+
- name: "📥 Checkout repository"
252+
uses: actions/checkout@v4
253+
with:
254+
token: ${{ secrets.GITHUB_TOKEN }}
255+
ref: v${{ needs.publish.outputs.release_version }}
256+
- name: "☕️ Setup JDK"
257+
uses: actions/setup-java@v4
258+
with:
259+
distribution: liberica
260+
java-version: '17.0.15'
261+
- name: "🐘 Setup Gradle"
262+
uses: gradle/actions/setup-gradle@v4
263+
with:
264+
develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
265+
- name: "⚙️ Run post-release"
266+
uses: apache/grails-github-actions/post-release@asf

etc/bin/verify.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ trap cleanup ERR
4040

4141
cd "${DOWNLOAD_LOCATION}"
4242
echo "Downloading KEYS file ..."
43-
curl -sSfLO "https://dist.apache.org/repos/dist/release/grails/KEYS"
43+
curl -sSfLO "https://dist.apache.org/repos/dist/release/incubator/grails/KEYS"
4444
echo "✅ KEYS Downloaded"
4545

4646
echo "Downloading Artifacts ..."

0 commit comments

Comments
 (0)