Skip to content

Commit c47fb1e

Browse files
authored
Merge branch '8.0.x' into fix/14915-beanbuilder-spring7
2 parents a1b7309 + 66a2516 commit c47fb1e

727 files changed

Lines changed: 22055 additions & 8955 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

β€Ž.agents/skills/groovy-developer/SKILL.mdβ€Ž

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,16 @@ def length = text?.length() ?: 0
109109
def firstTitle = books?.first()?.title ?: "No books"
110110
```
111111

112+
### Ternary Operator
113+
```groovy
114+
// Use ternary operators only for simple conditions.
115+
// Split long ternary expressions into multiple lines.
116+
// Align `?` and `:` branches for readability.
117+
String message = condition
118+
? "Value when true"
119+
: "Value when false"
120+
```
121+
112122
### Spread Operator
113123
```groovy
114124
// Spread operator for collections

β€Ž.github/workflows/forge-deploy-next.ymlβ€Ž

Lines changed: 3 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -16,34 +16,13 @@
1616
name: "Forge - Next GCP Deploy"
1717
on:
1818
workflow_dispatch:
19+
# The application code is already built and tested by the main CI (gradle.yml)
20+
# and by release verification, so these deploy workflows only build the native
21+
# image and ship it β€” no redundant full build or re-run of the forge tests.
1922
jobs:
20-
build:
21-
name: "Build project"
22-
runs-on: ubuntu-24.04
23-
steps:
24-
- name: "πŸ“₯ Checkout repository"
25-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
26-
- name: "β˜•οΈ Setup JDK"
27-
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
28-
with:
29-
distribution: 'liberica'
30-
java-version: '21'
31-
- name: "🐘 Setup Gradle"
32-
uses: gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6.1.0
33-
with:
34-
cache-provider: basic # 'basic' uses the MIT-licensed, open-source cache provider; the default 'enhanced' provider (v6+) is proprietary (Gradle commercial Terms of Use)
35-
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
36-
- name: "πŸ” Setup TestLens"
37-
uses: testlens-app/setup-testlens@d96a555133c275a00949d2cc77b70fe9a4242ebf # v1.9.2
38-
- name: "πŸ”¨ Build"
39-
working-directory: grails-forge
40-
run: ./gradlew build
41-
env:
42-
TEST_BUILD_REPRODUCIBLE: "true"
4323
deploy:
4424
name: "Deploy to Google Cloud Run"
4525
runs-on: ubuntu-24.04
46-
needs: build
4726
env:
4827
IMAGE_NAME: us-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.GCP_APP_NAME }}/${{ secrets.GCP_APP_NAME }}:next
4928
steps:
@@ -59,8 +38,6 @@ jobs:
5938
with:
6039
cache-provider: basic # 'basic' uses the MIT-licensed, open-source cache provider; the default 'enhanced' provider (v6+) is proprietary (Gradle commercial Terms of Use)
6140
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
62-
- name: "πŸ” Setup TestLens"
63-
uses: testlens-app/setup-testlens@d96a555133c275a00949d2cc77b70fe9a4242ebf # v1.9.2
6441
- name: "πŸ”‘ Login to Google Cloud"
6542
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
6643
with:
@@ -72,14 +49,6 @@ jobs:
7249
project_id: ${{ secrets.GCP_PROJECT_ID }}
7350
- name: "πŸ‹ Configure Docker for Artifact Registry"
7451
run: gcloud auth configure-docker us-docker.pkg.dev --quiet
75-
- name: "πŸƒ Run tests"
76-
working-directory: grails-forge
77-
run: >
78-
./gradlew
79-
grails-forge-api:test
80-
grails-forge-web-netty:test
81-
env:
82-
TEST_BUILD_REPRODUCIBLE: "true"
8352
- name: "πŸ”¨ Build Docker image"
8453
working-directory: grails-forge
8554
# To deploy native executables built with GraalVM, replace dockerBuild with dockerBuildNative and dockerPush
@@ -105,7 +74,6 @@ jobs:
10574
deployAnalytics:
10675
name: "Deploy analytics to Google Cloud Run"
10776
runs-on: ubuntu-24.04
108-
needs: build
10977
env:
11078
IMAGE_NAME: us-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.GCP_APP_NAME }}/${{ secrets.GCP_APP_NAME }}-analytics:next
11179
steps:
@@ -121,8 +89,6 @@ jobs:
12189
with:
12290
cache-provider: basic # 'basic' uses the MIT-licensed, open-source cache provider; the default 'enhanced' provider (v6+) is proprietary (Gradle commercial Terms of Use)
12391
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
124-
- name: "πŸ” Setup TestLens"
125-
uses: testlens-app/setup-testlens@d96a555133c275a00949d2cc77b70fe9a4242ebf # v1.9.2
12692
- name: "πŸ”‘ Login to Google Cloud"
12793
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
12894
with:
@@ -134,11 +100,6 @@ jobs:
134100
project_id: ${{ secrets.GCP_PROJECT_ID }}
135101
- name: "πŸ‹ Configure Docker for Artifact Registry"
136102
run: gcloud auth configure-docker us-docker.pkg.dev --quiet
137-
- name: "πŸƒ Run tests"
138-
working-directory: grails-forge
139-
run: ./gradlew grails-forge-analytics-postgres:test
140-
env:
141-
TEST_BUILD_REPRODUCIBLE: "true"
142103
- name: "πŸ”¨ Build Docker image"
143104
working-directory: grails-forge
144105
# To deploy native executables built with GraalVM, replace dockerBuild with dockerBuildNative and dockerPush

β€Ž.github/workflows/forge-deploy-prev-snapshot.ymlβ€Ž

Lines changed: 3 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -16,34 +16,13 @@
1616
name: "Forge - Prev Snapshot GCP Deploy"
1717
on:
1818
workflow_dispatch:
19+
# The application code is already built and tested by the main CI (gradle.yml)
20+
# and by release verification, so these deploy workflows only build the native
21+
# image and ship it β€” no redundant full build or re-run of the forge tests.
1922
jobs:
20-
build:
21-
name: "Build project"
22-
runs-on: ubuntu-24.04
23-
steps:
24-
- name: "πŸ“₯ Checkout repository"
25-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
26-
- name: "β˜•οΈ Setup JDK"
27-
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
28-
with:
29-
distribution: 'liberica'
30-
java-version: '21'
31-
- name: "🐘 Setup Gradle"
32-
uses: gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6.1.0
33-
with:
34-
cache-provider: basic # 'basic' uses the MIT-licensed, open-source cache provider; the default 'enhanced' provider (v6+) is proprietary (Gradle commercial Terms of Use)
35-
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
36-
- name: "πŸ” Setup TestLens"
37-
uses: testlens-app/setup-testlens@d96a555133c275a00949d2cc77b70fe9a4242ebf # v1.9.2
38-
- name: "πŸ”¨ Build"
39-
working-directory: grails-forge
40-
run: ./gradlew build
41-
env:
42-
TEST_BUILD_REPRODUCIBLE: "true"
4323
deploy:
4424
name: "Deploy to Google Cloud Run"
4525
runs-on: ubuntu-24.04
46-
needs: build
4726
env:
4827
IMAGE_NAME: us-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.GCP_APP_NAME }}/${{ secrets.GCP_APP_NAME }}:prev-snapshot
4928
steps:
@@ -59,8 +38,6 @@ jobs:
5938
with:
6039
cache-provider: basic # 'basic' uses the MIT-licensed, open-source cache provider; the default 'enhanced' provider (v6+) is proprietary (Gradle commercial Terms of Use)
6140
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
62-
- name: "πŸ” Setup TestLens"
63-
uses: testlens-app/setup-testlens@d96a555133c275a00949d2cc77b70fe9a4242ebf # v1.9.2
6441
- name: "πŸ”‘ Login to Google Cloud"
6542
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
6643
with:
@@ -72,14 +49,6 @@ jobs:
7249
project_id: ${{ secrets.GCP_PROJECT_ID }}
7350
- name: "πŸ‹ Configure Docker for Artifact Registry"
7451
run: gcloud auth configure-docker us-docker.pkg.dev --quiet
75-
- name: "πŸƒ Run tests"
76-
working-directory: grails-forge
77-
run: >
78-
./gradlew
79-
grails-forge-api:test
80-
grails-forge-web-netty:test
81-
env:
82-
TEST_BUILD_REPRODUCIBLE: "true"
8352
- name: "πŸ”¨ Build Docker image"
8453
working-directory: grails-forge
8554
# To deploy native executables built with GraalVM, replace dockerBuild with dockerBuildNative and dockerPush
@@ -105,7 +74,6 @@ jobs:
10574
deployAnalytics:
10675
name: "Deploy analytics to Google Cloud Run"
10776
runs-on: ubuntu-24.04
108-
needs: build
10977
env:
11078
IMAGE_NAME: us-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.GCP_APP_NAME }}/${{ secrets.GCP_APP_NAME }}-analytics:prev-snapshot
11179
steps:
@@ -121,8 +89,6 @@ jobs:
12189
with:
12290
cache-provider: basic # 'basic' uses the MIT-licensed, open-source cache provider; the default 'enhanced' provider (v6+) is proprietary (Gradle commercial Terms of Use)
12391
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
124-
- name: "πŸ” Setup TestLens"
125-
uses: testlens-app/setup-testlens@d96a555133c275a00949d2cc77b70fe9a4242ebf # v1.9.2
12692
- name: "πŸ”‘ Login to Google Cloud"
12793
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
12894
with:
@@ -134,11 +100,6 @@ jobs:
134100
project_id: ${{ secrets.GCP_PROJECT_ID }}
135101
- name: "πŸ‹ Configure Docker for Artifact Registry"
136102
run: gcloud auth configure-docker us-docker.pkg.dev --quiet
137-
- name: "πŸƒ Run tests"
138-
working-directory: grails-forge
139-
run: ./gradlew grails-forge-analytics-postgres:test
140-
env:
141-
TEST_BUILD_REPRODUCIBLE: "true"
142103
- name: "πŸ”¨ Build Docker image"
143104
working-directory: grails-forge
144105
# To deploy native executables built with GraalVM, replace dockerBuild with dockerBuildNative and dockerPush

β€Ž.github/workflows/forge-deploy-prev.ymlβ€Ž

Lines changed: 3 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -16,34 +16,13 @@
1616
name: "Forge - Prev GCP Deploy"
1717
on:
1818
workflow_dispatch:
19+
# The application code is already built and tested by the main CI (gradle.yml)
20+
# and by release verification, so these deploy workflows only build the native
21+
# image and ship it β€” no redundant full build or re-run of the forge tests.
1922
jobs:
20-
build:
21-
name: "Build project"
22-
runs-on: ubuntu-24.04
23-
steps:
24-
- name: "πŸ“₯ Checkout repository"
25-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
26-
- name: "β˜•οΈ Setup JDK"
27-
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
28-
with:
29-
distribution: 'liberica'
30-
java-version: '21'
31-
- name: "🐘 Setup Gradle"
32-
uses: gradle/actions/setup-gradle@50e97c2cd7a37755bbfafc9c5b7cafaece252f6e # v6.1.0
33-
with:
34-
cache-provider: basic # 'basic' uses the MIT-licensed, open-source cache provider; the default 'enhanced' provider (v6+) is proprietary (Gradle commercial Terms of Use)
35-
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
36-
- name: "πŸ” Setup TestLens"
37-
uses: testlens-app/setup-testlens@d96a555133c275a00949d2cc77b70fe9a4242ebf # v1.9.2
38-
- name: "πŸ”¨ Build"
39-
working-directory: grails-forge
40-
run: ./gradlew build
41-
env:
42-
TEST_BUILD_REPRODUCIBLE: "true"
4323
deploy:
4424
name: "Deploy to Google Cloud Run"
4525
runs-on: ubuntu-24.04
46-
needs: build
4726
env:
4827
IMAGE_NAME: us-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.GCP_APP_NAME }}/${{ secrets.GCP_APP_NAME }}:prev
4928
steps:
@@ -59,8 +38,6 @@ jobs:
5938
with:
6039
cache-provider: basic # 'basic' uses the MIT-licensed, open-source cache provider; the default 'enhanced' provider (v6+) is proprietary (Gradle commercial Terms of Use)
6140
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
62-
- name: "πŸ” Setup TestLens"
63-
uses: testlens-app/setup-testlens@d96a555133c275a00949d2cc77b70fe9a4242ebf # v1.9.2
6441
- name: "πŸ”‘ Login to Google Cloud"
6542
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
6643
with:
@@ -72,14 +49,6 @@ jobs:
7249
project_id: ${{ secrets.GCP_PROJECT_ID }}
7350
- name: "πŸ‹ Configure Docker for Artifact Registry"
7451
run: gcloud auth configure-docker us-docker.pkg.dev --quiet
75-
- name: "πŸƒ Run tests"
76-
working-directory: grails-forge
77-
run: >
78-
./gradlew
79-
grails-forge-api:test
80-
grails-forge-web-netty:test
81-
env:
82-
TEST_BUILD_REPRODUCIBLE: "true"
8352
- name: "πŸ”¨ Build Docker image"
8453
working-directory: grails-forge
8554
# To deploy native executables built with GraalVM, replace dockerBuild with dockerBuildNative and dockerPush
@@ -105,7 +74,6 @@ jobs:
10574
deployAnalytics:
10675
name: "Deploy analytics to Google Cloud Run"
10776
runs-on: ubuntu-24.04
108-
needs: build
10977
env:
11078
IMAGE_NAME: us-docker.pkg.dev/${{ secrets.GCP_PROJECT_ID }}/${{ secrets.GCP_APP_NAME }}/${{ secrets.GCP_APP_NAME }}-analytics:prev
11179
steps:
@@ -121,8 +89,6 @@ jobs:
12189
with:
12290
cache-provider: basic # 'basic' uses the MIT-licensed, open-source cache provider; the default 'enhanced' provider (v6+) is proprietary (Gradle commercial Terms of Use)
12391
develocity-access-key: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
124-
- name: "πŸ” Setup TestLens"
125-
uses: testlens-app/setup-testlens@d96a555133c275a00949d2cc77b70fe9a4242ebf # v1.9.2
12692
- name: "πŸ”‘ Login to Google Cloud"
12793
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
12894
with:
@@ -134,11 +100,6 @@ jobs:
134100
project_id: ${{ secrets.GCP_PROJECT_ID }}
135101
- name: "πŸ‹ Configure Docker for Artifact Registry"
136102
run: gcloud auth configure-docker us-docker.pkg.dev --quiet
137-
- name: "πŸƒ Run tests"
138-
working-directory: grails-forge
139-
run: ./gradlew grails-forge-analytics-postgres:test
140-
env:
141-
TEST_BUILD_REPRODUCIBLE: "true"
142103
- name: "πŸ”¨ Build Docker image"
143104
working-directory: grails-forge
144105
# To deploy native executables built with GraalVM, replace dockerBuild with dockerBuildNative and dockerPush

0 commit comments

Comments
Β (0)