-
-
Notifications
You must be signed in to change notification settings - Fork 467
Create Test Matrix for Spring Boot #4741
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
c1d64e7
86f2ae1
7063026
9ee5377
9a81fb9
363c3bb
81a3412
b7bc6c1
0efd513
4698e42
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,176 @@ | ||
| name: Spring Boot 2.x Matrix | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
| paths-ignore: | ||
| - '**/sentry-android/**' | ||
| pull_request: | ||
|
|
||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| spring-boot-2-matrix: | ||
| timeout-minutes: 45 | ||
| runs-on: ubuntu-latest | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| springboot-version: [ '2.1.0', '2.2.5', '2.4.13', '2.5.15', '2.6.15', '2.7.0', '2.7.18' ] | ||
|
|
||
| name: Spring Boot ${{ matrix.springboot-version }} | ||
| env: | ||
| SENTRY_URL: http://127.0.0.1:8000 | ||
| GRADLE_ENCRYPTION_KEY: ${{ secrets.GRADLE_ENCRYPTION_KEY }} | ||
|
|
||
| steps: | ||
| - name: Checkout Repo | ||
| uses: actions/checkout@v5 | ||
| with: | ||
| submodules: 'recursive' | ||
|
|
||
| - name: Set up Python | ||
| uses: actions/setup-python@v6 | ||
| with: | ||
| python-version: '3.10.5' | ||
|
|
||
| - name: Install Python dependencies | ||
| run: | | ||
| python3 -m pip install --upgrade pip | ||
| python3 -m pip install -r requirements.txt | ||
|
|
||
| - name: Set up Java | ||
| uses: actions/setup-java@v5 | ||
| with: | ||
| distribution: 'temurin' | ||
| java-version: '17' | ||
|
|
||
| # Workaround for https://github.com/gradle/actions/issues/21 to use config cache | ||
| - name: Cache buildSrc | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: buildSrc/build | ||
| key: build-logic-${{ hashFiles('buildSrc/src/**', 'buildSrc/build.gradle.kts','buildSrc/settings.gradle.kts') }} | ||
|
|
||
| - name: Setup Gradle | ||
| uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a | ||
| with: | ||
| cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} | ||
|
|
||
| - name: Update Spring Boot 2.x version | ||
| run: | | ||
| sed -i 's/^springboot2=.*/springboot2=${{ matrix.springboot-version }}/' gradle/libs.versions.toml | ||
| echo "Updated Spring Boot 2.x version to ${{ matrix.springboot-version }}" | ||
|
|
||
| - name: Exclude android modules from build | ||
| run: | | ||
| sed -i \ | ||
| -e '/.*"sentry-android-ndk",/d' \ | ||
| -e '/.*"sentry-android",/d' \ | ||
| -e '/.*"sentry-compose",/d' \ | ||
| -e '/.*"sentry-android-core",/d' \ | ||
| -e '/.*"sentry-android-fragment",/d' \ | ||
| -e '/.*"sentry-android-navigation",/d' \ | ||
| -e '/.*"sentry-android-sqlite",/d' \ | ||
| -e '/.*"sentry-android-timber",/d' \ | ||
| -e '/.*"sentry-android-integration-tests:sentry-uitest-android-benchmark",/d' \ | ||
| -e '/.*"sentry-android-integration-tests:sentry-uitest-android",/d' \ | ||
| -e '/.*"sentry-android-integration-tests:sentry-uitest-android-critical",/d' \ | ||
| -e '/.*"sentry-android-integration-tests:test-app-sentry",/d' \ | ||
| -e '/.*"sentry-samples:sentry-samples-android",/d' \ | ||
| -e '/.*"sentry-android-replay",/d' \ | ||
| settings.gradle.kts | ||
|
|
||
| - name: Exclude android modules from ignore list | ||
| run: | | ||
| sed -i \ | ||
| -e '/.*"sentry-uitest-android",/d' \ | ||
| -e '/.*"sentry-uitest-android-benchmark",/d' \ | ||
| -e '/.*"sentry-uitest-android-critical",/d' \ | ||
| -e '/.*"test-app-sentry",/d' \ | ||
| -e '/.*"sentry-samples-android",/d' \ | ||
| build.gradle.kts | ||
|
|
||
| - name: Build SDK | ||
| run: | | ||
| ./gradlew assemble --parallel | ||
|
|
||
| - name: Test sentry-samples-spring-boot | ||
| run: | | ||
| python3 test/system-test-runner.py test \ | ||
| --module "sentry-samples-spring-boot" \ | ||
| --agent false \ | ||
| --auto-init "true" \ | ||
| --build "true" | ||
|
|
||
| - name: Test sentry-samples-spring-boot-webflux | ||
| run: | | ||
| python3 test/system-test-runner.py test \ | ||
| --module "sentry-samples-spring-boot-webflux" \ | ||
| --agent false \ | ||
| --auto-init "true" \ | ||
| --build "true" | ||
|
|
||
| - name: Test sentry-samples-spring-boot-opentelemetry agent init true | ||
| run: | | ||
| python3 test/system-test-runner.py test \ | ||
| --module "sentry-samples-spring-boot-opentelemetry" \ | ||
| --agent true \ | ||
| --auto-init "true" \ | ||
| --build "true" | ||
|
Comment on lines
+101
to
+123
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Should we have an additional matrix on top of the current one that governs
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Running the tests should just add a couple seconds to the job. I haven't figured out a good way to cache so I think we don't gain much by adding another matrix. I'll add the auto-init false as another step here for now and we can revisit once we figure out caching / speed up the jobs. |
||
|
|
||
| - name: Test sentry-samples-spring-boot-opentelemetry agent init false | ||
| run: | | ||
| python3 test/system-test-runner.py test \ | ||
| --module "sentry-samples-spring-boot-opentelemetry" \ | ||
| --agent true \ | ||
| --auto-init "false" \ | ||
| --build "true" | ||
|
|
||
| - name: Test sentry-samples-spring-boot-opentelemetry-noagent | ||
| run: | | ||
| python3 test/system-test-runner.py test \ | ||
| --module "sentry-samples-spring-boot-opentelemetry-noagent" \ | ||
| --agent false \ | ||
| --auto-init "true" \ | ||
| --build "true" | ||
|
|
||
| - name: Test sentry-samples-spring | ||
| run: | | ||
| python3 test/system-test-runner.py test \ | ||
| --module "sentry-samples-spring" \ | ||
| --agent false \ | ||
| --auto-init "true" \ | ||
| --build "true" | ||
adinauer marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| - name: Upload test results | ||
| if: always() | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: test-results-springboot-2-${{ matrix.springboot-version }} | ||
| path: | | ||
| **/build/reports/* | ||
| **/build/test-results/**/*.xml | ||
| sentry-mock-server.txt | ||
| spring-server.txt | ||
|
|
||
| - name: Test Report | ||
| uses: phoenix-actions/test-reporting@f957cd93fc2d848d556fa0d03c57bc79127b6b5e # pin@v15 | ||
| if: always() | ||
| with: | ||
| name: JUnit Spring Boot 2.x ${{ matrix.springboot-version }} | ||
| path: | | ||
| **/build/test-results/**/*.xml | ||
| reporter: java-junit | ||
| output-to: step-summary | ||
| fail-on-error: false | ||
|
|
||
| - name: Upload test results to Codecov | ||
| if: ${{ !cancelled() }} | ||
| uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f | ||
| with: | ||
| token: ${{ secrets.CODECOV_TOKEN }} | ||
| file: '**/build/test-results/**/*.xml' | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,176 @@ | ||
| name: Spring Boot 3.x Matrix | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - main | ||
| paths-ignore: | ||
| - '**/sentry-android/**' | ||
| pull_request: | ||
|
|
||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| spring-boot-3-matrix: | ||
| timeout-minutes: 45 | ||
| runs-on: ubuntu-latest | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| springboot-version: [ '3.0.0', '3.2.10', '3.3.5', '3.4.5', '3.5.6' ] | ||
lcian marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| name: Spring Boot ${{ matrix.springboot-version }} | ||
| env: | ||
| SENTRY_URL: http://127.0.0.1:8000 | ||
| GRADLE_ENCRYPTION_KEY: ${{ secrets.GRADLE_ENCRYPTION_KEY }} | ||
|
|
||
| steps: | ||
| - name: Checkout Repo | ||
| uses: actions/checkout@v5 | ||
| with: | ||
| submodules: 'recursive' | ||
|
|
||
| - name: Set up Python | ||
| uses: actions/setup-python@v6 | ||
| with: | ||
| python-version: '3.10.5' | ||
|
|
||
| - name: Install Python dependencies | ||
| run: | | ||
| python3 -m pip install --upgrade pip | ||
| python3 -m pip install -r requirements.txt | ||
|
|
||
| - name: Set up Java | ||
| uses: actions/setup-java@v5 | ||
| with: | ||
| distribution: 'temurin' | ||
| java-version: '17' | ||
|
|
||
| # Workaround for https://github.com/gradle/actions/issues/21 to use config cache | ||
| - name: Cache buildSrc | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: buildSrc/build | ||
| key: build-logic-${{ hashFiles('buildSrc/src/**', 'buildSrc/build.gradle.kts','buildSrc/settings.gradle.kts') }} | ||
|
|
||
| - name: Setup Gradle | ||
| uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a | ||
| with: | ||
| cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} | ||
|
|
||
| - name: Update Spring Boot 3.x version | ||
| run: | | ||
| sed -i 's/^springboot3=.*/springboot3=${{ matrix.springboot-version }}/' gradle/libs.versions.toml | ||
| echo "Updated Spring Boot 3.x version to ${{ matrix.springboot-version }}" | ||
|
|
||
| - name: Exclude android modules from build | ||
| run: | | ||
| sed -i \ | ||
| -e '/.*"sentry-android-ndk",/d' \ | ||
| -e '/.*"sentry-android",/d' \ | ||
| -e '/.*"sentry-compose",/d' \ | ||
| -e '/.*"sentry-android-core",/d' \ | ||
| -e '/.*"sentry-android-fragment",/d' \ | ||
| -e '/.*"sentry-android-navigation",/d' \ | ||
| -e '/.*"sentry-android-sqlite",/d' \ | ||
| -e '/.*"sentry-android-timber",/d' \ | ||
| -e '/.*"sentry-android-integration-tests:sentry-uitest-android-benchmark",/d' \ | ||
| -e '/.*"sentry-android-integration-tests:sentry-uitest-android",/d' \ | ||
| -e '/.*"sentry-android-integration-tests:sentry-uitest-android-critical",/d' \ | ||
| -e '/.*"sentry-android-integration-tests:test-app-sentry",/d' \ | ||
| -e '/.*"sentry-samples:sentry-samples-android",/d' \ | ||
| -e '/.*"sentry-android-replay",/d' \ | ||
| settings.gradle.kts | ||
|
|
||
| - name: Exclude android modules from ignore list | ||
| run: | | ||
| sed -i \ | ||
| -e '/.*"sentry-uitest-android",/d' \ | ||
| -e '/.*"sentry-uitest-android-benchmark",/d' \ | ||
| -e '/.*"sentry-uitest-android-critical",/d' \ | ||
| -e '/.*"test-app-sentry",/d' \ | ||
| -e '/.*"sentry-samples-android",/d' \ | ||
| build.gradle.kts | ||
|
|
||
| - name: Build SDK | ||
| run: | | ||
| ./gradlew assemble --parallel | ||
|
|
||
| - name: Test sentry-samples-spring-boot-jakarta | ||
| run: | | ||
| python3 test/system-test-runner.py test \ | ||
| --module "sentry-samples-spring-boot-jakarta" \ | ||
| --agent false \ | ||
| --auto-init "true" \ | ||
| --build "true" | ||
|
|
||
| - name: Test sentry-samples-spring-boot-webflux-jakarta | ||
| run: | | ||
| python3 test/system-test-runner.py test \ | ||
| --module "sentry-samples-spring-boot-webflux-jakarta" \ | ||
| --agent false \ | ||
| --auto-init "true" \ | ||
| --build "true" | ||
|
|
||
| - name: Test sentry-samples-spring-boot-jakarta-opentelemetry agent init true | ||
| run: | | ||
| python3 test/system-test-runner.py test \ | ||
| --module "sentry-samples-spring-boot-jakarta-opentelemetry" \ | ||
| --agent true \ | ||
| --auto-init "true" \ | ||
| --build "true" | ||
|
|
||
| - name: Test sentry-samples-spring-boot-jakarta-opentelemetry agent init false | ||
| run: | | ||
| python3 test/system-test-runner.py test \ | ||
| --module "sentry-samples-spring-boot-jakarta-opentelemetry" \ | ||
| --agent true \ | ||
| --auto-init "false" \ | ||
| --build "true" | ||
|
|
||
| - name: Test sentry-samples-spring-boot-jakarta-opentelemetry-noagent | ||
| run: | | ||
| python3 test/system-test-runner.py test \ | ||
| --module "sentry-samples-spring-boot-jakarta-opentelemetry-noagent" \ | ||
| --agent false \ | ||
| --auto-init "true" \ | ||
| --build "true" | ||
|
|
||
| - name: Test sentry-samples-spring-jakarta | ||
| run: | | ||
| python3 test/system-test-runner.py test \ | ||
| --module "sentry-samples-spring-jakarta" \ | ||
| --agent false \ | ||
| --auto-init "true" \ | ||
| --build "true" | ||
|
|
||
| - name: Upload test results | ||
| if: always() | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: test-results-springboot-3-${{ matrix.springboot-version }} | ||
| path: | | ||
| **/build/reports/* | ||
| **/build/test-results/**/*.xml | ||
| sentry-mock-server.txt | ||
| spring-server.txt | ||
|
|
||
| - name: Test Report | ||
| uses: phoenix-actions/test-reporting@f957cd93fc2d848d556fa0d03c57bc79127b6b5e # pin@v15 | ||
| if: always() | ||
| with: | ||
| name: JUnit Spring Boot 3.x ${{ matrix.springboot-version }} | ||
| path: | | ||
| **/build/test-results/**/*.xml | ||
| reporter: java-junit | ||
| output-to: step-summary | ||
| fail-on-error: false | ||
|
|
||
| - name: Upload test results to Codecov | ||
| if: ${{ !cancelled() }} | ||
| uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f | ||
| with: | ||
| token: ${{ secrets.CODECOV_TOKEN }} | ||
| file: '**/build/test-results/**/*.xml' | ||
Uh oh!
There was an error while loading. Please reload this page.