Skip to content

Commit 3483d7d

Browse files
authored
Merge branch 'main' into fix-automate-unrunnable-tools
2 parents ea45e2f + fa2eb67 commit 3483d7d

72 files changed

Lines changed: 2425 additions & 917 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.

.github/workflows/PR-Demo-Comment-with-react.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,10 +211,16 @@ jobs:
211211
java-version: "25"
212212
distribution: "temurin"
213213

214-
- name: Setup Gradle
215-
uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6.2.0
214+
- name: Cache Gradle User Home
215+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
216216
with:
217-
gradle-version: 9.6.1
217+
path: |
218+
~/.gradle/caches
219+
~/.gradle/wrapper
220+
key: gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml', 'settings.gradle', 'build.gradle', 'app/**/build.gradle', 'gradle/**/*.gradle') }}
221+
restore-keys: |
222+
gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-
223+
gradle-${{ runner.os }}-${{ runner.arch }}-
218224
219225
- name: Install Task
220226
uses: go-task/setup-task@01a4adf9db2d14c1de7a560f09170b6e0df736aa # v2.1.0

.github/workflows/backend-build.yml

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,16 @@ jobs:
4040
java-version: ${{ matrix.jdk-version }}
4141
distribution: "temurin"
4242

43-
- name: Cache Gradle dependency artifacts
43+
- name: Cache Gradle User Home
4444
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
4545
with:
4646
path: |
47+
~/.gradle/caches
4748
~/.gradle/wrapper
48-
~/.gradle/caches/modules-2/files-2.1
49-
~/.gradle/caches/modules-2/metadata-2.*
50-
key: gradle-deps-${{ runner.os }}-jdk-${{ matrix.jdk-version }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/*.gradle', '**/*.gradle.kts', 'settings.gradle', 'settings.gradle.kts', 'gradle/libs.versions.toml') }}
51-
52-
- name: Setup Gradle
53-
uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6.2.0
54-
with:
55-
gradle-version: 9.6.1
56-
cache-disabled: true
49+
key: gradle-${{ runner.os }}-${{ runner.arch }}-jdk-${{ matrix.jdk-version }}-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml', 'settings.gradle', 'build.gradle', 'app/**/build.gradle', 'gradle/**/*.gradle') }}
50+
restore-keys: |
51+
gradle-${{ runner.os }}-${{ runner.arch }}-jdk-${{ matrix.jdk-version }}-
52+
gradle-${{ runner.os }}-${{ runner.arch }}-
5753
5854
- name: Install Task
5955
uses: go-task/setup-task@01a4adf9db2d14c1de7a560f09170b6e0df736aa # v2.1.0

.github/workflows/build-enterprise.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,16 @@ jobs:
6060
with:
6161
java-version: "25"
6262
distribution: "temurin"
63+
- name: Cache Gradle User Home
64+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
65+
with:
66+
path: |
67+
~/.gradle/caches
68+
~/.gradle/wrapper
69+
key: gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml', 'settings.gradle', 'build.gradle', 'app/**/build.gradle', 'gradle/**/*.gradle') }}
70+
restore-keys: |
71+
gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-
72+
gradle-${{ runner.os }}-${{ runner.arch }}-
6373
- name: Set up Node.js
6474
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
6575
with:

.github/workflows/build.yml

Lines changed: 44 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,43 @@ jobs:
6060
with:
6161
filters: .github/config/.files.yaml
6262

63-
build:
63+
gradle-cache-prime:
64+
name: Prime shared Gradle cache
6465
needs: [files-changed]
66+
runs-on: ubuntu-latest
67+
timeout-minutes: 15
68+
steps:
69+
- name: Harden the runner (Audit all outbound calls)
70+
uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0
71+
with:
72+
egress-policy: audit
73+
- name: Checkout repository
74+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
75+
- name: Set up JDK 25
76+
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
77+
with:
78+
java-version: "25"
79+
distribution: "temurin"
80+
- name: Cache Gradle User Home
81+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
82+
with:
83+
path: |
84+
~/.gradle/caches
85+
~/.gradle/wrapper
86+
key: gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml', 'settings.gradle', 'build.gradle', 'app/**/build.gradle', 'gradle/**/*.gradle') }}
87+
restore-keys: |
88+
gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-
89+
gradle-${{ runner.os }}-${{ runner.arch }}-
90+
- name: Resolve backend dependencies
91+
run: ./gradlew :stirling-pdf:classes -PnoSpotless --no-daemon
92+
env:
93+
STIRLING_FLAVOR: saas
94+
MAVEN_USER: ${{ secrets.MAVEN_USER }}
95+
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
96+
MAVEN_PUBLIC_URL: ${{ secrets.MAVEN_PUBLIC_URL }}
97+
98+
build:
99+
needs: [files-changed, gradle-cache-prime]
65100
permissions:
66101
actions: read
67102
contents: read
@@ -76,15 +111,15 @@ jobs:
76111
# works after Hibernate's ddl-auto=update migrates the schema. Gated on
77112
# the `project` filter so doc-only PRs skip this ~5-minute job.
78113
if: needs.files-changed.outputs.project == 'true'
79-
needs: [files-changed]
114+
needs: [files-changed, gradle-cache-prime]
80115
permissions:
81116
contents: read
82117
uses: ./.github/workflows/db-migration-test.yml
83118
secrets: inherit
84119

85120
check-generateOpenApiDocs:
86121
if: needs.files-changed.outputs.openapi == 'true'
87-
needs: [files-changed]
122+
needs: [files-changed, gradle-cache-prime]
88123
permissions:
89124
contents: read
90125
uses: ./.github/workflows/check-openapi.yml
@@ -120,31 +155,31 @@ jobs:
120155

121156
playwright-e2e-live:
122157
if: needs.files-changed.outputs.frontend == 'true'
123-
needs: [files-changed]
158+
needs: [files-changed, gradle-cache-prime]
124159
permissions:
125160
contents: read
126161
uses: ./.github/workflows/e2e-live.yml
127162
secrets: inherit
128163

129164
playwright-e2e-enterprise:
130165
if: needs.files-changed.outputs.proprietary == 'true'
131-
needs: [files-changed]
166+
needs: [files-changed, gradle-cache-prime]
132167
permissions:
133168
contents: read
134169
uses: ./.github/workflows/build-enterprise.yml
135170
secrets: inherit
136171

137172
check-licence:
138173
if: needs.files-changed.outputs.build == 'true'
139-
needs: [files-changed, build]
174+
needs: [files-changed, build, gradle-cache-prime]
140175
permissions:
141176
contents: read
142177
uses: ./.github/workflows/check-licence.yml
143178
secrets: inherit
144179

145180
docker-compose-tests:
146181
if: needs.files-changed.outputs.project == 'true'
147-
needs: [files-changed]
182+
needs: [files-changed, gradle-cache-prime]
148183
permissions:
149184
actions: write
150185
contents: read
@@ -156,7 +191,7 @@ jobs:
156191

157192
test-build-docker-images:
158193
if: github.event_name == 'pull_request' && needs.files-changed.outputs.project == 'true'
159-
needs: [files-changed, build, check-generateOpenApiDocs, check-licence]
194+
needs: [files-changed, build, check-generateOpenApiDocs, check-licence, gradle-cache-prime]
160195
permissions:
161196
contents: read
162197
packages: read
@@ -199,7 +234,7 @@ jobs:
199234
# frontend filter, so a CSS-only PR does not pay for a backend build.
200235
generated-models:
201236
if: needs.files-changed.outputs.generated-models == 'true'
202-
needs: [files-changed]
237+
needs: [files-changed, gradle-cache-prime]
203238
permissions:
204239
contents: read
205240
pull-requests: write

.github/workflows/check-generated-models.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,16 @@ jobs:
4242
java-version: "25"
4343
distribution: "temurin"
4444

45-
- name: Setup Gradle
46-
uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6.2.0
45+
- name: Cache Gradle User Home
46+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
4747
with:
48-
gradle-version: 9.6.0
48+
path: |
49+
~/.gradle/caches
50+
~/.gradle/wrapper
51+
key: gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml', 'settings.gradle', 'build.gradle', 'app/**/build.gradle', 'gradle/**/*.gradle') }}
52+
restore-keys: |
53+
gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-
54+
gradle-${{ runner.os }}-${{ runner.arch }}-
4955
5056
- name: Set up Node
5157
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0

.github/workflows/check-licence.yml

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,16 @@ jobs:
2626
java-version: "25"
2727
distribution: "temurin"
2828

29-
- name: Cache Gradle dependency artifacts
29+
- name: Cache Gradle User Home
3030
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
3131
with:
3232
path: |
33+
~/.gradle/caches
3334
~/.gradle/wrapper
34-
~/.gradle/caches/modules-2/files-2.1
35-
~/.gradle/caches/modules-2/metadata-2.*
36-
key: gradle-deps-${{ runner.os }}-jdk-25-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/*.gradle', '**/*.gradle.kts', 'settings.gradle', 'settings.gradle.kts', 'gradle/libs.versions.toml') }}
37-
38-
- name: Setup Gradle
39-
uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6.2.0
40-
with:
41-
gradle-version: 9.6.1
42-
cache-disabled: true
35+
key: gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml', 'settings.gradle', 'build.gradle', 'app/**/build.gradle', 'gradle/**/*.gradle') }}
36+
restore-keys: |
37+
gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-
38+
gradle-${{ runner.os }}-${{ runner.arch }}-
4339
4440
- name: Install Task
4541
uses: go-task/setup-task@01a4adf9db2d14c1de7a560f09170b6e0df736aa # v2.1.0

.github/workflows/check-openapi.yml

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,16 @@ jobs:
2727
java-version: "25"
2828
distribution: "temurin"
2929

30-
- name: Cache Gradle dependency artifacts
30+
- name: Cache Gradle User Home
3131
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
3232
with:
3333
path: |
34+
~/.gradle/caches
3435
~/.gradle/wrapper
35-
~/.gradle/caches/modules-2/files-2.1
36-
~/.gradle/caches/modules-2/metadata-2.*
37-
key: gradle-deps-${{ runner.os }}-jdk-25-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/*.gradle', '**/*.gradle.kts', 'settings.gradle', 'settings.gradle.kts', 'gradle/libs.versions.toml') }}
38-
39-
- name: Setup Gradle
40-
uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6.2.0
41-
with:
42-
gradle-version: 9.6.1
43-
cache-disabled: true
36+
key: gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml', 'settings.gradle', 'build.gradle', 'app/**/build.gradle', 'gradle/**/*.gradle') }}
37+
restore-keys: |
38+
gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-
39+
gradle-${{ runner.os }}-${{ runner.arch }}-
4440
4541
- name: Install Task
4642
uses: go-task/setup-task@01a4adf9db2d14c1de7a560f09170b6e0df736aa # v2.1.0

.github/workflows/coverage-aggregate.yml

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,16 @@ jobs:
4646
java-version: "25"
4747
distribution: "temurin"
4848

49-
- name: Cache Gradle dependency artifacts
49+
- name: Cache Gradle User Home
5050
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
5151
with:
5252
path: |
53+
~/.gradle/caches
5354
~/.gradle/wrapper
54-
~/.gradle/caches/modules-2/files-2.1
55-
~/.gradle/caches/modules-2/metadata-2.*
56-
key: gradle-deps-${{ runner.os }}-jdk-25-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/*.gradle', '**/*.gradle.kts', 'settings.gradle', 'settings.gradle.kts', 'gradle/libs.versions.toml') }}
57-
58-
- name: Setup Gradle
59-
uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6.2.0
60-
with:
61-
gradle-version: 9.6.1
62-
cache-disabled: true
55+
key: gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml', 'settings.gradle', 'build.gradle', 'app/**/build.gradle', 'gradle/**/*.gradle') }}
56+
restore-keys: |
57+
gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-
58+
gradle-${{ runner.os }}-${{ runner.arch }}-
6359
6460
- name: Set up Python
6561
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
@@ -81,7 +77,7 @@ jobs:
8177
# Each lands as a sibling dir under coverage-execs/, with the .exec
8278
# files preserving their original relative paths.
8379
- name: Download all .exec artifacts
84-
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v6.0.0
80+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
8581
with:
8682
pattern: jacoco-exec-*
8783
path: coverage-execs/
@@ -206,7 +202,7 @@ jobs:
206202
# absence on backend-only runs by skipping the download entirely
207203
# when the producer job was not part of this workflow run.
208204
if: inputs.frontend-validation-result == 'success'
209-
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v6.0.0
205+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
210206
with:
211207
name: frontend-coverage
212208
path: matrix-inputs/vitest/
@@ -216,7 +212,7 @@ jobs:
216212
# e2e-live uploads the artifact with a stable name. Skip the
217213
# download entirely when the producer job did not run.
218214
if: inputs.playwright-e2e-live-result == 'success'
219-
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v6.0.0
215+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
220216
with:
221217
name: playwright-frontend-coverage
222218
path: matrix-inputs/playwright/

.github/workflows/db-migration-test.yml

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,23 +30,19 @@ jobs:
3030
java-version: 25
3131
distribution: temurin
3232

33-
- name: Cache Gradle dependency artifacts
33+
- name: Cache Gradle User Home
3434
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
3535
with:
3636
path: |
37+
~/.gradle/caches
3738
~/.gradle/wrapper
38-
~/.gradle/caches/modules-2/files-2.1
39-
~/.gradle/caches/modules-2/metadata-2.*
40-
key: gradle-deps-${{ runner.os }}-jdk-25-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/*.gradle', '**/*.gradle.kts', 'settings.gradle', 'settings.gradle.kts', 'gradle/libs.versions.toml') }}
39+
key: gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml', 'settings.gradle', 'build.gradle', 'app/**/build.gradle', 'gradle/**/*.gradle') }}
40+
restore-keys: |
41+
gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-
42+
gradle-${{ runner.os }}-${{ runner.arch }}-
4143
42-
- name: Setup Gradle
43-
uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6.2.0
44-
with:
45-
gradle-version: 9.6.1
46-
cache-disabled: true
47-
48-
# No `-PnoSpotless` here yet because the upstream cache layer matches the
49-
# backend build's; reuse keeps cold-cache cost identical.
44+
# Keep the normal formatting path here so this smoke test exercises the
45+
# same Gradle configuration as the backend build.
5046
- name: Build Stirling-PDF JAR
5147
env:
5248
MAVEN_USER: ${{ secrets.MAVEN_USER }}

.github/workflows/docker-compose-tests.yml

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,16 @@ jobs:
3838
java-version: "25"
3939
distribution: "temurin"
4040

41-
- name: Cache Gradle dependency artifacts
41+
- name: Cache Gradle User Home
4242
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
4343
with:
4444
path: |
45+
~/.gradle/caches
4546
~/.gradle/wrapper
46-
~/.gradle/caches/modules-2/files-2.1
47-
~/.gradle/caches/modules-2/metadata-2.*
48-
key: gradle-deps-${{ runner.os }}-jdk-25-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties', '**/*.gradle', '**/*.gradle.kts', 'settings.gradle', 'settings.gradle.kts', 'gradle/libs.versions.toml') }}
49-
50-
- name: Setup Gradle
51-
uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6.2.0
52-
with:
53-
gradle-version: 9.6.1
54-
cache-disabled: true
47+
key: gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml', 'settings.gradle', 'build.gradle', 'app/**/build.gradle', 'gradle/**/*.gradle') }}
48+
restore-keys: |
49+
gradle-${{ runner.os }}-${{ runner.arch }}-jdk-25-
50+
gradle-${{ runner.os }}-${{ runner.arch }}-
5551
5652
# When the PR changes the base image, test.sh builds it locally
5753
# (stirling-pdf-base:local) into the daemon image store. A buildx

0 commit comments

Comments
 (0)