This is an automated email from the ASF dual-hosted git repository.

jdaugherty 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 dcb0c95080 Add CI workflow for verification (must still verify locally)
dcb0c95080 is described below

commit dcb0c95080e738093b48c857748830d9439cb563
Author: James Daugherty <[email protected]>
AuthorDate: Fri Jul 10 09:12:47 2026 -0400

    Add CI workflow for verification (must still verify locally)
---
 .github/workflows/release-verify.yml | 97 ++++++++++++++++++++++++++++++++++++
 1 file changed, 97 insertions(+)

diff --git a/.github/workflows/release-verify.yml 
b/.github/workflows/release-verify.yml
new file mode 100644
index 0000000000..e2e7f5a172
--- /dev/null
+++ b/.github/workflows/release-verify.yml
@@ -0,0 +1,97 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Runs the automated release verification (etc/bin/verify.sh) against a
+# published release tag. The job fails if any verification step fails.
+# This replaces the local Docker-based flow (etc/bin/Dockerfile) for CI use;
+# the container remains useful for reproducing this environment locally.
+name: "Release Verification"
+
+on:
+  workflow_dispatch:
+    inputs:
+      release_tag:
+        description: 'Release tag to verify (e.g. v7.0.5)'
+        required: true
+        type: string
+
+permissions: { }
+
+concurrency:
+  group: release-verify-${{ inputs.release_tag }}
+  cancel-in-progress: false
+
+jobs:
+  verify:
+    runs-on: ubuntu-24.04
+    timeout-minutes: 120
+    steps:
+      # mirror the layout of the local verification container 
(etc/bin/Dockerfile):
+      # the source is checked out at 'project' and verification runs from a
+      # sibling 'grails-verify' scratch directory
+      - name: "📥 Checkout repository"
+        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # 
v6.0.2
+        with:
+          path: project
+      - name: "☕️ Determine Java version from .sdkmanrc"
+        # a release must be verified with the exact JDK it was built with for
+        # the reproducible-build comparison, so read the pinned version from
+        # .sdkmanrc instead of duplicating it here
+        id: sdkmanrc
+        working-directory: project
+        run: |
+          SDKMAN_JAVA=$(grep -E '^java=' .sdkmanrc | cut -d= -f2)
+          JAVA_VERSION=${SDKMAN_JAVA%-*}
+          SDKMAN_SUFFIX=${SDKMAN_JAVA##*-}
+          case "${SDKMAN_SUFFIX}" in
+            librca) JAVA_DISTRIBUTION=liberica ;;
+            tem)    JAVA_DISTRIBUTION=temurin ;;
+            *)
+              echo "❌ Unmapped sdkman java distribution suffix: 
${SDKMAN_SUFFIX}" >&2
+              exit 1
+              ;;
+          esac
+          echo "Using Java ${JAVA_VERSION} (${JAVA_DISTRIBUTION})"
+          echo "java-version=${JAVA_VERSION}" >> "${GITHUB_OUTPUT}"
+          echo "java-distribution=${JAVA_DISTRIBUTION}" >> "${GITHUB_OUTPUT}"
+      - name: "☕️ Setup JDK"
+        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # 
v5.2.0
+        with:
+          distribution: ${{ steps.sdkmanrc.outputs.java-distribution }}
+          java-version: ${{ steps.sdkmanrc.outputs.java-version }}
+      - name: "🐘 Setup Gradle"
+        uses: 
gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6.1.0
+        with:
+          # verification must run against a pristine environment, never cached 
state
+          cache-disabled: true
+      - name: "🥃 Install Groovy"
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y --no-install-recommends groovy
+          groovy --version
+      - name: "🛠 Add wrapper and verification scripts to PATH"
+        # matches the container's PATH setup: verify.sh resolves `gradlew` from
+        # the PATH (the wrapper locates its jar relative to the script, so the
+        # checkout's copy works from any directory)
+        run: |
+          echo "${GITHUB_WORKSPACE}/project" >> "${GITHUB_PATH}"
+          echo "${GITHUB_WORKSPACE}/project/etc/bin" >> "${GITHUB_PATH}"
+      - name: "✅ Verify release"
+        env:
+          RELEASE_TAG: ${{ inputs.release_tag }}
+        run: |
+          mkdir -p grails-verify
+          cd grails-verify
+          verify.sh "${RELEASE_TAG}" .

Reply via email to