Skip to content

Commit 88b415f

Browse files
runningcodeclaude
authored andcommitted
ci(spring-matrix): Replace sed hacks with targeted Gradle builds (#5397)
* ci(spring-matrix): Replace sed hacks with targeted Gradle builds Remove the sed-based Android module exclusion from settings.gradle.kts and build.gradle.kts in the Spring Boot matrix workflows. This is unnecessary because `org.gradle.configureondemand=true` ensures Gradle only configures projects needed for the requested tasks. Replace the broad `./gradlew assemble --parallel` with a single targeted Gradle invocation that builds only the specific artifacts needed (shadowJar/bootJar/war + OTel agent). Remove redundant `--build "true"` from test runner invocations since artifacts are already built. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ci(spring-matrix): Include testClasses in initial build Add testClasses tasks to the single Gradle invocation so test sources are pre-compiled. The subsequent systemTest Gradle calls then only execute tests without needing to compile anything. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * ci(spring-matrix): Remove redundant --parallel flag Already set in gradle.properties. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 9cb04f5 commit 88b415f

3 files changed

Lines changed: 57 additions & 135 deletions

File tree

.github/workflows/spring-boot-2-matrix.yml

Lines changed: 19 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -72,88 +72,62 @@ jobs:
7272
perl -0pi -e 'BEGIN { $v = shift } s/^springboot2[[:space:]]*=[[:space:]]*"\K[^"]*/$v/m or die "::error::springboot2 version entry not found in gradle/libs.versions.toml\n"' "$springboot_version" gradle/libs.versions.toml
7373
echo "Updated Spring Boot 2.x version to $springboot_version"
7474
75-
- name: Exclude android modules from build
75+
- name: Build sample artifacts
7676
run: |
77-
sed -i \
78-
-e '/.*"sentry-android-ndk",/d' \
79-
-e '/.*"sentry-android",/d' \
80-
-e '/.*"sentry-compose",/d' \
81-
-e '/.*"sentry-android-core",/d' \
82-
-e '/.*"sentry-android-fragment",/d' \
83-
-e '/.*"sentry-android-navigation",/d' \
84-
-e '/.*"sentry-android-sqlite",/d' \
85-
-e '/.*"sentry-android-timber",/d' \
86-
-e '/.*"sentry-android-integration-tests:sentry-uitest-android-benchmark",/d' \
87-
-e '/.*"sentry-android-integration-tests:sentry-uitest-android",/d' \
88-
-e '/.*"sentry-android-integration-tests:sentry-uitest-android-critical",/d' \
89-
-e '/.*"sentry-android-integration-tests:test-app-sentry",/d' \
90-
-e '/.*"sentry-android-integration-tests:test-app-size",/d' \
91-
-e '/.*"sentry-samples:sentry-samples-android",/d' \
92-
-e '/.*"sentry-android-replay",/d' \
93-
settings.gradle.kts
94-
95-
- name: Exclude android modules from ignore list
96-
run: |
97-
sed -i \
98-
-e '/.*"sentry-uitest-android",/d' \
99-
-e '/.*"sentry-uitest-android-benchmark",/d' \
100-
-e '/.*"sentry-uitest-android-critical",/d' \
101-
-e '/.*"test-app-sentry",/d' \
102-
-e '/.*"test-app-size",/d' \
103-
-e '/.*"sentry-samples-android",/d' \
104-
build.gradle.kts
105-
106-
- name: Build SDK
107-
run: |
108-
./gradlew assemble --parallel
77+
./gradlew \
78+
:sentry-samples:sentry-samples-spring-boot:shadowJar \
79+
:sentry-samples:sentry-samples-spring-boot:testClasses \
80+
:sentry-samples:sentry-samples-spring-boot-webflux:shadowJar \
81+
:sentry-samples:sentry-samples-spring-boot-webflux:testClasses \
82+
:sentry-samples:sentry-samples-spring-boot-opentelemetry:shadowJar \
83+
:sentry-samples:sentry-samples-spring-boot-opentelemetry:testClasses \
84+
:sentry-samples:sentry-samples-spring-boot-opentelemetry-noagent:shadowJar \
85+
:sentry-samples:sentry-samples-spring-boot-opentelemetry-noagent:testClasses \
86+
:sentry-samples:sentry-samples-spring:war \
87+
:sentry-samples:sentry-samples-spring:testClasses \
88+
:sentry-opentelemetry:sentry-opentelemetry-agent:assemble
10989
11090
- name: Test sentry-samples-spring-boot
11191
run: |
11292
python3 test/system-test-runner.py test \
11393
--module "sentry-samples-spring-boot" \
11494
--agent false \
115-
--auto-init "true" \
116-
--build "true"
95+
--auto-init "true"
11796
11897
- name: Test sentry-samples-spring-boot-webflux
11998
run: |
12099
python3 test/system-test-runner.py test \
121100
--module "sentry-samples-spring-boot-webflux" \
122101
--agent false \
123-
--auto-init "true" \
124-
--build "true"
102+
--auto-init "true"
125103
126104
- name: Test sentry-samples-spring-boot-opentelemetry agent init true
127105
run: |
128106
python3 test/system-test-runner.py test \
129107
--module "sentry-samples-spring-boot-opentelemetry" \
130108
--agent true \
131-
--auto-init "true" \
132-
--build "true"
109+
--auto-init "true"
133110
134111
- name: Test sentry-samples-spring-boot-opentelemetry agent init false
135112
run: |
136113
python3 test/system-test-runner.py test \
137114
--module "sentry-samples-spring-boot-opentelemetry" \
138115
--agent true \
139-
--auto-init "false" \
140-
--build "true"
116+
--auto-init "false"
141117
142118
- name: Test sentry-samples-spring-boot-opentelemetry-noagent
143119
run: |
144120
python3 test/system-test-runner.py test \
145121
--module "sentry-samples-spring-boot-opentelemetry-noagent" \
146122
--agent false \
147-
--auto-init "true" \
148-
--build "true"
123+
--auto-init "true"
149124
150125
- name: Test sentry-samples-spring
151126
run: |
152127
python3 test/system-test-runner.py test \
153128
--module "sentry-samples-spring" \
154129
--agent false \
155-
--auto-init "true" \
156-
--build "true"
130+
--auto-init "true"
157131
158132
- name: Upload test results
159133
if: always()

.github/workflows/spring-boot-3-matrix.yml

Lines changed: 19 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -68,88 +68,62 @@ jobs:
6868
perl -0pi -e 'BEGIN { $v = shift } s/^springboot3[[:space:]]*=[[:space:]]*"\K[^"]*/$v/m or die "::error::springboot3 version entry not found in gradle/libs.versions.toml\n"' "$springboot_version" gradle/libs.versions.toml
6969
echo "Updated Spring Boot 3.x version to $springboot_version"
7070
71-
- name: Exclude android modules from build
71+
- name: Build sample artifacts
7272
run: |
73-
sed -i \
74-
-e '/.*"sentry-android-ndk",/d' \
75-
-e '/.*"sentry-android",/d' \
76-
-e '/.*"sentry-compose",/d' \
77-
-e '/.*"sentry-android-core",/d' \
78-
-e '/.*"sentry-android-fragment",/d' \
79-
-e '/.*"sentry-android-navigation",/d' \
80-
-e '/.*"sentry-android-sqlite",/d' \
81-
-e '/.*"sentry-android-timber",/d' \
82-
-e '/.*"sentry-android-integration-tests:sentry-uitest-android-benchmark",/d' \
83-
-e '/.*"sentry-android-integration-tests:sentry-uitest-android",/d' \
84-
-e '/.*"sentry-android-integration-tests:sentry-uitest-android-critical",/d' \
85-
-e '/.*"sentry-android-integration-tests:test-app-sentry",/d' \
86-
-e '/.*"sentry-android-integration-tests:test-app-size",/d' \
87-
-e '/.*"sentry-samples:sentry-samples-android",/d' \
88-
-e '/.*"sentry-android-replay",/d' \
89-
settings.gradle.kts
90-
91-
- name: Exclude android modules from ignore list
92-
run: |
93-
sed -i \
94-
-e '/.*"sentry-uitest-android",/d' \
95-
-e '/.*"sentry-uitest-android-benchmark",/d' \
96-
-e '/.*"sentry-uitest-android-critical",/d' \
97-
-e '/.*"test-app-sentry",/d' \
98-
-e '/.*"test-app-size",/d' \
99-
-e '/.*"sentry-samples-android",/d' \
100-
build.gradle.kts
101-
102-
- name: Build SDK
103-
run: |
104-
./gradlew assemble --parallel
73+
./gradlew \
74+
:sentry-samples:sentry-samples-spring-boot-jakarta:bootJar \
75+
:sentry-samples:sentry-samples-spring-boot-jakarta:testClasses \
76+
:sentry-samples:sentry-samples-spring-boot-webflux-jakarta:bootJar \
77+
:sentry-samples:sentry-samples-spring-boot-webflux-jakarta:testClasses \
78+
:sentry-samples:sentry-samples-spring-boot-jakarta-opentelemetry:bootJar \
79+
:sentry-samples:sentry-samples-spring-boot-jakarta-opentelemetry:testClasses \
80+
:sentry-samples:sentry-samples-spring-boot-jakarta-opentelemetry-noagent:bootJar \
81+
:sentry-samples:sentry-samples-spring-boot-jakarta-opentelemetry-noagent:testClasses \
82+
:sentry-samples:sentry-samples-spring-jakarta:war \
83+
:sentry-samples:sentry-samples-spring-jakarta:testClasses \
84+
:sentry-opentelemetry:sentry-opentelemetry-agent:assemble
10585
10686
- name: Test sentry-samples-spring-boot-jakarta
10787
run: |
10888
python3 test/system-test-runner.py test \
10989
--module "sentry-samples-spring-boot-jakarta" \
11090
--agent false \
111-
--auto-init "true" \
112-
--build "true"
91+
--auto-init "true"
11392
11493
- name: Test sentry-samples-spring-boot-webflux-jakarta
11594
run: |
11695
python3 test/system-test-runner.py test \
11796
--module "sentry-samples-spring-boot-webflux-jakarta" \
11897
--agent false \
119-
--auto-init "true" \
120-
--build "true"
98+
--auto-init "true"
12199
122100
- name: Test sentry-samples-spring-boot-jakarta-opentelemetry agent init true
123101
run: |
124102
python3 test/system-test-runner.py test \
125103
--module "sentry-samples-spring-boot-jakarta-opentelemetry" \
126104
--agent true \
127-
--auto-init "true" \
128-
--build "true"
105+
--auto-init "true"
129106
130107
- name: Test sentry-samples-spring-boot-jakarta-opentelemetry agent init false
131108
run: |
132109
python3 test/system-test-runner.py test \
133110
--module "sentry-samples-spring-boot-jakarta-opentelemetry" \
134111
--agent true \
135-
--auto-init "false" \
136-
--build "true"
112+
--auto-init "false"
137113
138114
- name: Test sentry-samples-spring-boot-jakarta-opentelemetry-noagent
139115
run: |
140116
python3 test/system-test-runner.py test \
141117
--module "sentry-samples-spring-boot-jakarta-opentelemetry-noagent" \
142118
--agent false \
143-
--auto-init "true" \
144-
--build "true"
119+
--auto-init "true"
145120
146121
- name: Test sentry-samples-spring-jakarta
147122
run: |
148123
python3 test/system-test-runner.py test \
149124
--module "sentry-samples-spring-jakarta" \
150125
--agent false \
151-
--auto-init "true" \
152-
--build "true"
126+
--auto-init "true"
153127
154128
- name: Upload test results
155129
if: always()

.github/workflows/spring-boot-4-matrix.yml

Lines changed: 19 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -68,88 +68,62 @@ jobs:
6868
perl -0pi -e 'BEGIN { $v = shift } s/^springboot4[[:space:]]*=[[:space:]]*"\K[^"]*/$v/m or die "::error::springboot4 version entry not found in gradle/libs.versions.toml\n"' "$springboot_version" gradle/libs.versions.toml
6969
echo "Updated Spring Boot 4.x version to $springboot_version"
7070
71-
- name: Exclude android modules from build
71+
- name: Build sample artifacts
7272
run: |
73-
sed -i \
74-
-e '/.*"sentry-android-ndk",/d' \
75-
-e '/.*"sentry-android",/d' \
76-
-e '/.*"sentry-compose",/d' \
77-
-e '/.*"sentry-android-core",/d' \
78-
-e '/.*"sentry-android-fragment",/d' \
79-
-e '/.*"sentry-android-navigation",/d' \
80-
-e '/.*"sentry-android-sqlite",/d' \
81-
-e '/.*"sentry-android-timber",/d' \
82-
-e '/.*"sentry-android-integration-tests:sentry-uitest-android-benchmark",/d' \
83-
-e '/.*"sentry-android-integration-tests:sentry-uitest-android",/d' \
84-
-e '/.*"sentry-android-integration-tests:sentry-uitest-android-critical",/d' \
85-
-e '/.*"sentry-android-integration-tests:test-app-sentry",/d' \
86-
-e '/.*"sentry-android-integration-tests:test-app-size",/d' \
87-
-e '/.*"sentry-samples:sentry-samples-android",/d' \
88-
-e '/.*"sentry-android-replay",/d' \
89-
settings.gradle.kts
90-
91-
- name: Exclude android modules from ignore list
92-
run: |
93-
sed -i \
94-
-e '/.*"sentry-uitest-android",/d' \
95-
-e '/.*"sentry-uitest-android-benchmark",/d' \
96-
-e '/.*"sentry-uitest-android-critical",/d' \
97-
-e '/.*"test-app-sentry",/d' \
98-
-e '/.*"test-app-size",/d' \
99-
-e '/.*"sentry-samples-android",/d' \
100-
build.gradle.kts
101-
102-
- name: Build SDK
103-
run: |
104-
./gradlew assemble --parallel
73+
./gradlew \
74+
:sentry-samples:sentry-samples-spring-boot-4:bootJar \
75+
:sentry-samples:sentry-samples-spring-boot-4:testClasses \
76+
:sentry-samples:sentry-samples-spring-boot-4-webflux:bootJar \
77+
:sentry-samples:sentry-samples-spring-boot-4-webflux:testClasses \
78+
:sentry-samples:sentry-samples-spring-boot-4-opentelemetry:bootJar \
79+
:sentry-samples:sentry-samples-spring-boot-4-opentelemetry:testClasses \
80+
:sentry-samples:sentry-samples-spring-boot-4-opentelemetry-noagent:bootJar \
81+
:sentry-samples:sentry-samples-spring-boot-4-opentelemetry-noagent:testClasses \
82+
:sentry-samples:sentry-samples-spring-7:war \
83+
:sentry-samples:sentry-samples-spring-7:testClasses \
84+
:sentry-opentelemetry:sentry-opentelemetry-agent:assemble
10585
10686
- name: Run sentry-samples-spring-boot-4
10787
run: |
10888
python3 test/system-test-runner.py test \
10989
--module "sentry-samples-spring-boot-4" \
11090
--agent false \
111-
--auto-init "true" \
112-
--build "true"
91+
--auto-init "true"
11392
11493
- name: Run sentry-samples-spring-boot-4-webflux
11594
run: |
11695
python3 test/system-test-runner.py test \
11796
--module "sentry-samples-spring-boot-4-webflux" \
11897
--agent false \
119-
--auto-init "true" \
120-
--build "true"
98+
--auto-init "true"
12199
122100
- name: Run sentry-samples-spring-boot-4-opentelemetry agent init true
123101
run: |
124102
python3 test/system-test-runner.py test \
125103
--module "sentry-samples-spring-boot-4-opentelemetry" \
126104
--agent true \
127-
--auto-init "true" \
128-
--build "true"
105+
--auto-init "true"
129106
130107
- name: Run sentry-samples-spring-boot-4-opentelemetry agent init false
131108
run: |
132109
python3 test/system-test-runner.py test \
133110
--module "sentry-samples-spring-boot-4-opentelemetry" \
134111
--agent true \
135-
--auto-init "false" \
136-
--build "true"
112+
--auto-init "false"
137113
138114
- name: Run sentry-samples-spring-boot-4-opentelemetry-noagent
139115
run: |
140116
python3 test/system-test-runner.py test \
141117
--module "sentry-samples-spring-boot-4-opentelemetry-noagent" \
142118
--agent false \
143-
--auto-init "true" \
144-
--build "true"
119+
--auto-init "true"
145120
146121
- name: Run sentry-samples-spring-7
147122
run: |
148123
python3 test/system-test-runner.py test \
149124
--module "sentry-samples-spring-7" \
150125
--agent false \
151-
--auto-init "true" \
152-
--build "true"
126+
--auto-init "true"
153127
154128
- name: Upload test results
155129
if: always()

0 commit comments

Comments
 (0)