Skip to content

Commit f815025

Browse files
committed
Merge branch '7.0.x' into 7.1.x
# Conflicts: # .github/workflows/gradle.yml
2 parents 9813638 + 795977e commit f815025

13 files changed

Lines changed: 152 additions & 77 deletions

File tree

.github/workflows/codestyle.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
run: ./gradlew codeStyle
4747
- name: "📤 Upload Failure Reports"
4848
if: always()
49-
uses: actions/upload-artifact@v7.0.0
49+
uses: actions/upload-artifact@v7.0.1
5050
with:
5151
name: core-reports
5252
path: build/reports/codestyle/
@@ -84,7 +84,7 @@ jobs:
8484
run: ./gradlew codeStyle
8585
- name: "📤 Upload Failure Reports"
8686
if: always()
87-
uses: actions/upload-artifact@v7.0.0
87+
uses: actions/upload-artifact@v7.0.1
8888
with:
8989
name: gradle-plugin-reports
9090
path: grails-gradle/build/reports/codestyle/
@@ -122,7 +122,7 @@ jobs:
122122
run: ./gradlew codeStyle
123123
- name: "📤 Upload Failure Reports"
124124
if: always()
125-
uses: actions/upload-artifact@v7.0.0
125+
uses: actions/upload-artifact@v7.0.1
126126
with:
127127
name: forge-reports
128128
path: grails-forge/build/reports/codestyle/

.github/workflows/gradle.yml

Lines changed: 44 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ jobs:
198198
./tmp1/cli/bin/grails-forge-cli --version
199199
- name: "📤 Upload CLI Zip to Workflow Summary Page"
200200
if: ${{ matrix.java == '17' && matrix.indy == false }}
201-
uses: actions/upload-artifact@v7.0.0
201+
uses: actions/upload-artifact@v7.0.1
202202
with:
203203
name: 'apache-grails-SNAPSHOT-bin.zip'
204204
include-hidden-files: true
@@ -353,12 +353,12 @@ jobs:
353353
--no-build-cache
354354
--rerun-tasks
355355
- name: "📤 Upload grails-gradle checksums"
356-
uses: actions/upload-artifact@v7.0.0
356+
uses: actions/upload-artifact@v7.0.1
357357
with:
358358
name: grails-gradle-checksums
359359
path: grails-gradle/build/grails-gradle-checksums.txt
360360
- name: "📤 Upload grails-gradle published artifacts"
361-
uses: actions/upload-artifact@v7.0.0
361+
uses: actions/upload-artifact@v7.0.1
362362
with:
363363
name: grails-gradle-artifacts.txt
364364
path: grails-gradle/build/grails-gradle-artifacts.txt
@@ -404,34 +404,24 @@ jobs:
404404
retry_wait_seconds: 180
405405
command: ./gradlew publish aggregateChecksums aggregatePublishedArtifacts --no-build-cache --rerun-tasks
406406
- name: "📤 Upload grails-core checksums"
407-
uses: actions/upload-artifact@v7.0.0
407+
uses: actions/upload-artifact@v7.0.1
408408
with:
409409
name: grails-core-checksums.txt
410410
path: build/grails-core-checksums.txt
411411
- name: "📤 Upload grails-core published artifacts"
412-
uses: actions/upload-artifact@v7.0.0
412+
uses: actions/upload-artifact@v7.0.1
413413
with:
414414
name: grails-core-artifacts.txt
415415
path: build/grails-core-artifacts.txt
416416
- name: "🔨 Create Grails Wrapper Distribution Zip"
417-
run: >
418-
./gradlew :grails-wrapper:distZip
419-
- name: "✅ Verify grails-wrapper"
420-
if: success()
421-
env:
422-
GRAILS_WRAPPER_ALLOWED_TYPES: 'SNAPSHOT'
423417
run: |
424-
# Pin the wrapper to this branch's snapshot so it doesn't resolve the
425-
# globally latest SNAPSHOT in the Apache repo, which may be compiled
426-
# for a newer Java runtime than this job's JDK.
427-
export PREFERRED_GRAILS_VERSION=$(grep '^projectVersion=' gradle.properties | cut -d'=' -f2)
418+
./gradlew :grails-wrapper:distZip
428419
cp grails-wrapper/build/distributions/apache-grails-wrapper-*.zip build/wrapper.zip
429420
cd build
430421
unzip wrapper -d tmp
431422
mv tmp/apache-grails-wrapper-* tmp/wrapper
432-
./tmp/wrapper/grailsw --version
433423
- name: "📤 Upload Wrapper Zip to Workflow Summary Page"
434-
uses: actions/upload-artifact@v7.0.0
424+
uses: actions/upload-artifact@v7.0.1
435425
with:
436426
name: apache-grails-wrapper-SNAPSHOT-bin
437427
path: build/tmp/wrapper
@@ -467,15 +457,49 @@ jobs:
467457
--no-build-cache
468458
--rerun-tasks
469459
- name: "📤 Upload grails-forge checksums"
470-
uses: actions/upload-artifact@v7.0.0
460+
uses: actions/upload-artifact@v7.0.1
471461
with:
472462
name: grails-forge-checksums
473463
path: grails-forge/build/grails-forge-checksums.txt
474464
- name: "📤 Upload grails-gradle published artifacts"
475-
uses: actions/upload-artifact@v7.0.0
465+
uses: actions/upload-artifact@v7.0.1
476466
with:
477467
name: grails-forge-artifacts.txt
478468
path: grails-forge/build/grails-forge-artifacts.txt
469+
verifyWrapper:
470+
name: "Verify grails-wrapper"
471+
# Verifies the wrapper works end-to-end. Must run after publishForge so that
472+
# grails-cli (which the wrapper resolves at runtime) is available in Nexus.
473+
if: github.repository_owner == 'apache' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
474+
needs: [ publish, publishForge ]
475+
runs-on: ubuntu-24.04
476+
steps:
477+
- name: "Output Agent IP" # in the event RAO blocks this agent, this can be used to debug it
478+
run: curl -s https://api.ipify.org
479+
- name: "📥 Checkout repository"
480+
uses: actions/checkout@v6
481+
- name: "☕️ Setup JDK"
482+
uses: actions/setup-java@v4
483+
with:
484+
distribution: liberica
485+
java-version: 17
486+
- name: "📥 Download Wrapper"
487+
uses: actions/download-artifact@v7.0.0
488+
with:
489+
name: apache-grails-wrapper-SNAPSHOT-bin
490+
path: wrapper
491+
- name: "✅ Verify grails-wrapper"
492+
env:
493+
GRAILS_WRAPPER_ALLOWED_TYPES: 'SNAPSHOT'
494+
run: |
495+
# Pin the wrapper to this branch's snapshot so it doesn't resolve the
496+
# globally latest SNAPSHOT in the Apache repo, which may be compiled
497+
# for a newer Java runtime than this job's JDK.
498+
export PREFERRED_GRAILS_VERSION=$(grep '^projectVersion=' gradle.properties | cut -d'=' -f2)
499+
# actions/download-artifact does not preserve the executable bit, so
500+
# restore it before invoking the wrapper script (see actions/upload-artifact#38).
501+
chmod +x ./wrapper/grailsw
502+
./wrapper/grailsw --version
479503
docs:
480504
if: github.repository_owner == 'apache' && github.event_name == 'push'
481505
needs: [ publish ]
@@ -523,7 +547,7 @@ jobs:
523547
./gradlew grails-doc:build
524548
-PgithubBranch=${{ env.TARGET_BRANCH }}
525549
- name: "📤 Upload Generated Docs to Workflow Result Page"
526-
uses: actions/upload-artifact@v7.0.0
550+
uses: actions/upload-artifact@v7.0.1
527551
with:
528552
name: grails-docs-${{ env.NOW }}.zip
529553
path: ./build/distributions/*.zip

.github/workflows/rat.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
run: ./gradlew rat
5252
- name: Upload RAT HTML report
5353
if: always()
54-
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
54+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
5555
with:
5656
name: rat-report
5757
path: build/reports/rat/index.html

build-logic/settings.gradle

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -18,40 +18,9 @@
1818
*/
1919

2020
pluginManagement {
21+
apply from: file('../gradle/plugin-repositories.gradle')
2122
repositories {
22-
if (System.getenv('GRAILS_INCLUDE_MAVEN_LOCAL')) {
23-
mavenLocal()
24-
}
25-
mavenCentral()
26-
gradlePluginPortal()
27-
maven {
28-
url = 'https://repository.apache.org/content/groups/snapshots'
29-
content {
30-
includeVersionByRegex('org[.]apache[.]grails[.]gradle.*', '.*', '.*-SNAPSHOT')
31-
}
32-
mavenContent {
33-
snapshotsOnly()
34-
}
35-
}
36-
maven {
37-
url = 'https://central.sonatype.com/repository/maven-snapshots'
38-
content {
39-
includeVersionByRegex('cloud[.]wondrify.*', '.*', '.*-SNAPSHOT')
40-
}
41-
mavenContent {
42-
snapshotsOnly()
43-
}
44-
}
45-
maven {
46-
url = 'https://repository.apache.org/content/groups/staging'
47-
content {
48-
includeModuleByRegex('org[.]apache[.]grails[.]gradle', 'grails-publish')
49-
includeModuleByRegex('org[.]apache[.]groovy', 'groovy.*')
50-
}
51-
mavenContent {
52-
releasesOnly()
53-
}
54-
}
23+
configurePluginRepositories(delegate)
5524
}
5625
}
5726

buildSrc/settings.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ pluginManagement {
2020
includeBuild('../build-logic') {
2121
name = 'build-logic-root'
2222
}
23+
apply from: file('../gradle/plugin-repositories.gradle')
24+
repositories {
25+
configurePluginRepositories(delegate)
26+
}
2327
}
2428

2529
plugins {

gradle/plugin-repositories.gradle

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* https://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
20+
ext.configurePluginRepositories = { RepositoryHandler repositories ->
21+
if (System.getenv('GRAILS_INCLUDE_MAVEN_LOCAL')) {
22+
repositories.mavenLocal()
23+
}
24+
repositories.mavenCentral()
25+
repositories.gradlePluginPortal()
26+
repositories.maven {
27+
url = uri('https://repository.apache.org/content/groups/snapshots')
28+
content {
29+
includeGroup('org.apache.grails.gradle')
30+
}
31+
mavenContent {
32+
snapshotsOnly()
33+
}
34+
}
35+
repositories.maven {
36+
url = uri('https://central.sonatype.com/repository/maven-snapshots')
37+
content {
38+
includeGroupByRegex('cloud[.]wondrify[.].*')
39+
}
40+
mavenContent {
41+
snapshotsOnly()
42+
}
43+
}
44+
repositories.maven {
45+
url = uri('https://repository.apache.org/content/groups/staging')
46+
content {
47+
includeModule('org.apache.grails.gradle', 'grails-publish')
48+
includeModuleByRegex('org[.]apache[.]groovy', 'groovy.*')
49+
}
50+
mavenContent {
51+
releasesOnly()
52+
}
53+
}
54+
}

grails-doc/src/en/ref/Tags - GSP/formActionSubmit.adoc

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,18 +61,18 @@ Creates a submit button that sets the `formaction` attribute, which allows one t
6161

6262
Attributes
6363

64-
* `value` (required) - The caption of the button and name of action when not explicitly defined.
65-
* `id` (optional) - The element id of the input element
66-
* `action` (optional) - The name of the action to use in the link; if not specified the default action will be linked
67-
* `controller` (optional) - The name of the controller to use in the link; if not specified the current controller will be linked
68-
* `namespace` (optional) - The namespace of the controller to use in the link
69-
* `plugin` (optional) - The name of the plugin which provides the controller
70-
* `id` (optional) - The id to use in the link
71-
* `fragment` (optional) - The link fragment (often called anchor tag) to use
72-
* `mapping` (optional) - The link:{guidePath}/theWebLayer.html#namedMappings to use to rewrite the link
73-
* `method` (optional) - The HTTP method specified in the corresponding URL mapping
74-
* `params` (optional) - A map containing URL query parameters for the link
75-
* `url` (optional) - A Map containing the action, controller, id etc.
64+
* `value` (required) - The label shown on the submit button.
65+
* `id` (optional) - The DOM id of the rendered input element.
66+
* `disabled` (optional) - Disables the rendered button when the value evaluates to true.
67+
* `action` (optional) - The name of the action to use in the link; if not specified the default action will be linked.
68+
* `controller` (optional) - The name of the controller to use in the link; if not specified the current controller will be linked.
69+
* `namespace` (optional) - The namespace of the controller to use in the link.
70+
* `plugin` (optional) - The name of the plugin which provides the controller.
71+
* `fragment` (optional) - The link fragment (often called anchor tag) to use.
72+
* `mapping` (optional) - The link:{guidePath}/theWebLayer.html#namedMappings to use to rewrite the link.
73+
* `method` (optional) - The HTTP method specified in the corresponding URL mapping.
74+
* `params` (optional) - A map containing URL query parameters for the link.
75+
* `url` (optional) - A Map containing the action, controller, id, etc. for the generated link. If the target URL needs an `id`, provide it here because the top-level `id` attribute is used for the input element.
7676
* `uri` (optional) - A string for a relative path in the running app.
7777
* `relativeUri` (optional) - Used to specify a uri relative to the current path.
7878
* `absolute` (optional) - If `true` will prefix the link target address with the value of the `grails.serverURL` property from the application configuration, or http://localhost:8080 if there is no setting in the config and not running in production.

grails-forge/buildSrc/settings.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ pluginManagement {
2020
includeBuild('../../build-logic') {
2121
name = 'build-logic-root'
2222
}
23+
apply from: file('../../gradle/plugin-repositories.gradle')
24+
repositories {
25+
configurePluginRepositories(delegate)
26+
}
2327
}
2428

2529
plugins {

grails-forge/settings.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ pluginManagement {
2525
includeBuild('../build-logic') {
2626
name = 'build-logic-root'
2727
}
28+
apply from: file('../gradle/plugin-repositories.gradle')
29+
repositories {
30+
configurePluginRepositories(delegate)
31+
}
2832
}
2933

3034
plugins {

grails-gradle/buildSrc/settings.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ pluginManagement {
2020
includeBuild('../../build-logic') {
2121
name = 'build-logic-root'
2222
}
23+
apply from: file('../../gradle/plugin-repositories.gradle')
24+
repositories {
25+
configurePluginRepositories(delegate)
26+
}
2327
}
2428

2529
plugins {

0 commit comments

Comments
 (0)