This is an automated email from the ASF dual-hosted git repository.
matrei pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git
The following commit(s) were added to refs/heads/7.0.x by this push:
new 796cd2f1bc [skip ci] post 7.0.4 release updates (#15272)
796cd2f1bc is described below
commit 796cd2f1bc3d04f2e5071e3832f08933ceda1bd4
Author: Mattias Reichel <[email protected]>
AuthorDate: Tue Dec 2 15:10:42 2025 +0100
[skip ci] post 7.0.4 release updates (#15272)
---
.github/scripts/releaseDistributions.sh | 12 ++++----
.github/scripts/releaseJarFiles.sh | 7 +++--
.github/workflows/release.yml | 51 ++++++++++++++++++++++-----------
3 files changed, 44 insertions(+), 26 deletions(-)
diff --git a/.github/scripts/releaseDistributions.sh
b/.github/scripts/releaseDistributions.sh
index f89c0fc555..60d2d28020 100755
--- a/.github/scripts/releaseDistributions.sh
+++ b/.github/scripts/releaseDistributions.sh
@@ -19,22 +19,18 @@
# under the License.
#
-# ./releaseDistributions.sh <tag> <svn_folder> <username>
+# ./releaseDistributions.sh <tag> <svn-folder> <username>
set -euo pipefail
if [[ $# -ne 3 ]]; then
- echo "Usage: $0 <tag> <svn_folder> <username>" >&2
+ echo "Usage: $0 <tag> <svn-folder> <username>" >&2
exit 1
fi
RELEASE_TAG="$1"
-RELEASE_VERSION="${RELEASE_TAG#v}"
SVN_FOLDER="$2"
SVN_USER="$3"
-RELEASE_ROOT="https://dist.apache.org/repos/dist/release/grails/${SVN_FOLDER}"
-DEV_ROOT="https://dist.apache.org/repos/dist/dev/grails/${SVN_FOLDER}"
-
read -r -s -p "Password: " SVN_PASS
echo
@@ -51,6 +47,10 @@ if [[ -z "${SVN_PASS}" ]]; then
exit 1
fi
+RELEASE_VERSION="${RELEASE_TAG#v}"
+RELEASE_ROOT="https://dist.apache.org/repos/dist/release/grails/${SVN_FOLDER}"
+DEV_ROOT="https://dist.apache.org/repos/dist/dev/grails/${SVN_FOLDER}"
+
svn_flags=(--non-interactive --trust-server-cert --username "${SVN_USER}"
--password "${SVN_PASS}")
svn_exists() {
diff --git a/.github/scripts/releaseJarFiles.sh
b/.github/scripts/releaseJarFiles.sh
index 4e781e072f..a18f7c54c4 100755
--- a/.github/scripts/releaseJarFiles.sh
+++ b/.github/scripts/releaseJarFiles.sh
@@ -19,16 +19,15 @@
# under the License.
#
-# ./releaseJarFiles.sh <staging repo description> <username>
+# ./releaseJarFiles.sh <staging-repo-description> <username>
set -euo pipefail
if [[ $# -ne 2 ]]; then
- echo "Usage: $0 <staging repo description> <username>" >&2
+ echo "Usage: $0 <staging-repo-description> <username>" >&2
exit 1
fi
-NEXUS_URL="https://repository.apache.org"
STAGING_DESCRIPTION="$1"
NEXUS_USER="$2"
read -r -s -p "Password: " NEXUS_PASS
@@ -47,6 +46,8 @@ if [[ -z "${NEXUS_PASS}" ]]; then
exit 1
fi
+NEXUS_URL="https://repository.apache.org"
+
nexusApi() {
local request_method="$1"; shift
local path="$1"; shift
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 3018661b17..dd18df30f8 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -24,7 +24,7 @@ env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GRAILS_PUBLISH_RELEASE: 'true'
JAVA_DISTRIBUTION: liberica
- JAVA_VERSION: 17.0.17 # this must be a specific version for reproducible
builds, keep it synced with .sdkmanrc
+ JAVA_VERSION: 17.0.17 # this must be a specific version for reproducible
builds, keep it synced with .sdkmanrc and verification container
PROJECT_DESC: >
Grails is a powerful Groovy-based web application framework for the JVM,
built on top of Spring Boot, and supported by a rich ecosystem of plugins
@@ -161,7 +161,7 @@ jobs:
publishToSonatype
aggregateChecksums
aggregatePublishedArtifacts
- - name: "📤 Publish grails-core to Staging Repository"
+ - name: "📤 Publish Grails Core to Staging Repository"
env:
NEXUS_PUBLISH_USERNAME: ${{ secrets.NEXUS_STAGE_DEPLOYER_USER }}
NEXUS_PUBLISH_PASSWORD: ${{ secrets.NEXUS_STAGE_DEPLOYER_PW }}
@@ -176,7 +176,7 @@ jobs:
publishToSonatype
aggregateChecksums
aggregatePublishedArtifacts
- - name: "📤 Publish grails-forge to Staging Repository"
+ - name: "📤 Publish Grails Forge to Staging Repository"
env:
NEXUS_PUBLISH_USERNAME: ${{ secrets.NEXUS_STAGE_DEPLOYER_USER }}
NEXUS_PUBLISH_PASSWORD: ${{ secrets.NEXUS_STAGE_DEPLOYER_PW }}
@@ -235,7 +235,7 @@ jobs:
steps:
- name: "📝 Establish release version"
run: echo "VERSION=${TAG#v}" >> "$GITHUB_ENV"
- - name: "📥 Checkout grails-core repository"
+ - name: "📥 Checkout Grails Core repository"
uses: actions/checkout@v5
with:
path: grails
@@ -255,19 +255,25 @@ jobs:
rm -f grails/KEYS
- name: "📥 Download CHECKSUMS.txt and rename to CHECKSUMS"
working-directory: grails
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
release_url=$(gh release view "${TAG}" --json assets --repo
"${REPO_SLUG}" --jq '.assets[] | select(.name == "CHECKSUMS.txt") | .url')
- curl -f -L -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -o
CHECKSUMS "$release_url"
+ curl -f -L -H "Authorization: token $GH_TOKEN" -o CHECKSUMS
"$release_url"
- name: "📥 Download PUBLISHED_ARTIFACTS.txt and rename to
PUBLISHED_ARTIFACTS"
working-directory: grails
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
release_url=$(gh release view "${TAG}" --json assets --repo
"${REPO_SLUG}" --jq '.assets[] | select(.name == "PUBLISHED_ARTIFACTS.txt") |
.url')
- curl -f -L -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -o
PUBLISHED_ARTIFACTS "$release_url"
+ curl -f -L -H "Authorization: token $GH_TOKEN" -o
PUBLISHED_ARTIFACTS "$release_url"
- name: "📥 Download BUILD_DATE.txt and rename to BUILD_DATE"
working-directory: grails
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
release_url=$(gh release view "${TAG}" --json assets --repo
"${REPO_SLUG}" --jq '.assets[] | select(.name == "BUILD_DATE.txt") | .url')
- curl -f -L -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -o
BUILD_DATE "$release_url"
+ curl -f -L -H "Authorization: token $GH_TOKEN" -o BUILD_DATE
"$release_url"
- name: "📅 Ensure source files use common date"
run: |
SOURCE_DATE_EPOCH=$(cat grails/BUILD_DATE)
@@ -347,7 +353,7 @@ jobs:
steps:
- name: "📝 Establish release version"
run: echo "VERSION=${TAG#v}" >> "$GITHUB_ENV"
- - name: "⚙️ Setup SVN and Tools"
+ - name: "🛠️ Install tools"
run: sudo apt-get install -y subversion subversion-tools tree
gettext-base
- name: "👀 Ensure dev/${{ env.SVN_PROJECT }} folder exists"
run: |
@@ -472,8 +478,8 @@ jobs:
uses: actions/checkout@v5
with:
ref: ${{ env.TAG }}
- - name: "⚙️ Setup SVN and Tools"
- run: sudo apt-get install -y subversion subversion-tools tree
gettext-base
+ - name: "🛠️️ Install tools"
+ run: sudo apt-get install -y gettext-base
- name: "🗳 MANUAL - Confirm Grails PMC Vote succeeded"
run: |
echo "::group::Manual Confirmation"
@@ -514,7 +520,8 @@ jobs:
run: |
echo "::group::Manual ASF Reporter Update"
TODAY=$(date +"%Y-%m-%d")
- echo "Check email from [email protected] & update
https://reporter.apache.org/addrelease.html?${SVN_PROJECT} to add
${SVN_FOLDER^^}-${VERSION} as complete as of ${TODAY}"
+ echo "Update
https://reporter.apache.org/addrelease.html?${SVN_PROJECT} to add"
+ echo "${SVN_FOLDER^^}-${VERSION} as complete as of ${TODAY}"
echo "::endgroup::"
- name: "🚀 MANUAL - Deploy Grails Forge"
run: |
@@ -569,7 +576,7 @@ jobs:
- name: "🚀 Publish to GitHub Pages"
uses: apache/grails-github-actions/deploy-github-pages@asf
env:
- GH_TOKEN: ${{ secrets.GRAILS_GHTOKEN }}
+ GH_TOKEN: ${{ secrets.GRAILS_GHTOKEN }} # To be able to push to
grails-website repo
GRADLE_PUBLISH_RELEASE: 'true'
SOURCE_FOLDER: grails-doc/build/docs
TARGET_REPOSITORY: apache/grails-website
@@ -597,14 +604,14 @@ jobs:
with:
develocity-access-key: ${{ secrets.GRAILS_DEVELOCITY_ACCESS_KEY }}
- name: "🚀 Grails SDK Minor Release"
- if: contains(env.VERSION, 'M')
+ if: contains(env.VERSION, 'M') || contains(env.VERSION, 'RC')
working-directory: grails-forge
run: ./gradlew sdkMinorRelease
env:
GVM_SDKVENDOR_KEY: ${{ secrets.GVM_SDKVENDOR_KEY }}
GVM_SDKVENDOR_TOKEN: ${{ secrets.GVM_SDKVENDOR_TOKEN }}
- name: "🚀 Grails SDK Major Release"
- if: startsWith(env.VERSION, '7.') && !contains(env.VERSION, 'M')
+ if: startsWith(env.VERSION, '7.') && !contains(env.VERSION, 'M') &&
!contains(env.VERSION, 'RC')
working-directory: grails-forge
run: ./gradlew sdkMajorRelease
env:
@@ -635,17 +642,27 @@ jobs:
- name: "🌎 MANUAL - Create Blog Post"
run: |
echo "::group::Blog Post Creation - MANUAL"
- echo "Publish a blog post on https://grails.apache.org/blog/ about
the new release [${VERSION}] using the repo
https://github.com/apache/grails-static-website"
+ echo "Publish a blog post on https://grails.apache.org/blog/ about
the new release [${VERSION}] using"
+ echo "the repo: https://github.com/apache/grails-static-website"
echo "::endgroup::"
- name: "🌎 MANUAL - Merge Close Release PR"
run: |
echo "::group::Merge Close Release PR - MANUAL"
- echo "The last step in the grails-core release workflow will create
a merge branch for the original tag with version number and then open a PR to
merge back into the next branch. You will need to merge this PR into the branch
after correcting any merge conflict."
+ echo "The last step in the grails-core release workflow will create
a merge branch for the original tag"
+ echo "with version number and then open a PR to merge back into the
next branch."
+ echo "You will need to merge this PR into the branch after
correcting any merge conflict."
echo "::endgroup::"
- name: "🌎 MANUAL - deploy the new SNAPSHOT to Forge"
run: |
echo "::group::Deploy the new SNAPSHOT to Forge - MANUAL"
- echo "After the Close Release PR is merged, deploy the new SNAPSHOT
to Forge via:
https://github.com/apache/grails-core/actions/workflows/forge-deploy-snapshot.yml"
+ echo "After the Close Release PR is merged, deploy the new SNAPSHOT
to Forge via:"
+ echo
"https://github.com/apache/grails-core/actions/workflows/forge-deploy-snapshot.yml"
+ echo "::endgroup::"
+ - name: "🌎 MANUAL - Add version to the Grails Website"
+ run: |
+ echo "::group::Add version to the Grails Website - MANUAL"
+ echo "Add the released version [${VERSION}] to the Grails Website by
running the Release workflow:"
+ echo
"https://github.com/apache/grails-static-website/actions/workflows/release.yml"
echo "::endgroup::"
- name: '📧 Announcement Email'
run: |