Skip to content

[DNM] ci(spring-boot): Parallelize Spring Boot matrix builds (JAVA-510)#5459

Draft
0xadam-brown wants to merge 1 commit into
mainfrom
chore/ci-parallelize-spring-boot-matrix
Draft

[DNM] ci(spring-boot): Parallelize Spring Boot matrix builds (JAVA-510)#5459
0xadam-brown wants to merge 1 commit into
mainfrom
chore/ci-parallelize-spring-boot-matrix

Conversation

@0xadam-brown
Copy link
Copy Markdown
Member

@0xadam-brown 0xadam-brown commented May 21, 2026

⚠️ DO NOT REVIEW: For test purposes only. ⚠️

📜 Description

Test PR for parallel Spring Boot matrix CI: per-version Gradle build jobs upload sdk-build-sb*-{version} artifacts; matrix test jobs download them and run system-test-runner.py with --build false.

Changes only .github/workflows/spring-boot-{2,3,4}-matrix.yml.

💡 Motivation and Context

  • resolves: JAVA-510

Reduces wall-clock time by splitting build and test across matrix cells and reusing build artifacts.

💚 How did you test it?

CI only — validating via Spring Boot 2.x / 3.x / 4.x Matrix workflows on this PR.

📝 Checklist

  • I added GH Issue ID & Linear ID
  • I added tests to verify the changes.
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled.
  • I updated the docs if needed.
  • I updated the wizard if needed.
  • Review from the native team if needed.
  • No breaking change or entry added to the changelog.
  • No breaking change for hybrid SDKs or communicated to hybrid SDKs.

#skip-changelog

Made with Cursor

… jobs (JAVA-510)

Prior to this commit, each Spring Boot matrix version ran all 5+ system tests sequentially in a single job (~45 min per version). A slow test blocked every test after it, and a build failure for one version had no clean failure isolation.

What changed:

 - One build job per version compiles the SDK and samples, uploads JARs as a short-lived artifact
 - One test job per (version × sample config) cell downloads the artifact and runs a single test with --build false
 - A versions job is the single source of truth for the version list across all three workflows
 - The WAR servlet sample is extracted to its own job so it doesn't block or pad the main matrix
 - paths-ignore now correctly excludes all Android modules (not just sentry-android/)

Result: The full SB2 matrix (7 versions × 5 configs = 35 jobs) runs in parallel. Wall-clock time drops from ~45 min × 7 sequential to ~15 min flat. Build failures are isolated per version; a single bad version no longer skips all others.
@linear-code
Copy link
Copy Markdown

linear-code Bot commented May 21, 2026

JAVA-510

@0xadam-brown 0xadam-brown changed the title ci(spring-boot): Parallelize Spring Boot matrix builds (JAVA-510) [DNM] ci(spring-boot): Parallelize Spring Boot matrix builds (JAVA-510) May 21, 2026
@sentry
Copy link
Copy Markdown

sentry Bot commented May 21, 2026

📲 Install Builds

Android

🔗 App Name App ID Version Configuration
SDK Size io.sentry.tests.size 8.42.0 (1) release

⚙️ sentry-android Build Distribution Settings

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant