Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
fff7ea5
docs: Announce Java 11 and minSdk 26 requirements for SDK 9 (#6471)
runningcode Nov 5, 2026
9b8318e
ref(core): Add MonitorConfigUtils to convert schedules to monitor con…
wedamija Nov 5, 2026
573cf8f
feat(spring): Send monitor config from @Scheduled with @SentryCheckIn…
wedamija Nov 5, 2026
1aab810
feat(quartz): Send monitor config from the trigger with check-ins (#6…
wedamija Nov 5, 2026
0f3b350
chore(deps): bump com.launchdarkly:launchdarkly-java-server-sdk (#6461)
dependabot[bot] Nov 5, 2026
24363df
feat(spring): Add an option to monitor all @Scheduled methods in Spri…
wedamija Nov 5, 2026
f5e69b7
chore(deps): bump com.github.ben-manes.caffeine:jcache (#6463)
dependabot[bot] Nov 5, 2026
e29145a
feat(spring): Add an option to monitor all @Scheduled methods in Spri…
wedamija Nov 5, 2026
8158e3c
feat(spring): Add an option to monitor all @Scheduled methods in Spri…
wedamija Nov 5, 2026
66b269d
chore(deps): bump com.google.devtools.ksp from 2.3.9 to 2.3.13 (#6462)
dependabot[bot] Nov 5, 2026
fc3cbaa
chore(deps): bump the github-actions group with 2 updates (#6476)
dependabot[bot] Nov 6, 2026
f01c143
build: Apply convention plugins per module instead of the root subpro…
markushi Nov 6, 2026
63a675a
chore(deps): Bump OkHttp from 4.9.2 to 5.5.1 (JAVA-715) (#6472)
runningcode Nov 6, 2026
c1967f5
test(spring-boot): Keep the Log4j2 LoggerContext reachable in appende…
markushi Nov 6, 2026
1a746d7
fix(okhttp): Don't block on response bodies by reading the body upfro…
markushi Nov 6, 2026
2ac3550
build: Align SDK modules to one version through sentry-bom (#6466)
romtsn Nov 6, 2026
3d1f55e
ref(android): Measure ANR thresholds on the monotonic clock (JAVA-579…
runningcode Nov 6, 2026
b79aabf
fix(okhttp): Capture network details only while Session Replay is rec…
markushi Nov 6, 2026
7c0be47
ci: Skip duplicate high-risk code PR comments (#6010)
sentry-junior[bot] Nov 6, 2026
0135df8
docs: Allow broad catches only at SDK boundaries (#6187)
runningcode Nov 6, 2026
1b8668a
ci(android): Run UI tests incl. replay on API 30 in AGP matrix, drop …
sentry-junior[bot] Nov 6, 2026
14c2936
build(samples): [Sample Tests 44] Prepare the samples to build outsid…
runningcode Nov 6, 2026
c22fe1a
chore(deps): bump androidx.browser:browser from 1.8.0 to 1.10.0 (#6503)
dependabot[bot] Nov 6, 2026
c9a84ee
build(samples): [Sample Tests 47] Move the JVM samples to their own b…
runningcode Nov 6, 2026
9fa280c
chore(deps): bump sqliteRc from 2.7.0-rc01 to 2.8.0-alpha03 (#6440)
dependabot[bot] Nov 6, 2026
d498061
fix(graphql): support specification error types (#6092)
IamPritamAcharya Nov 9, 2026
c015af1
chore(deps): bump the github-actions group with 4 updates (#6512)
dependabot[bot] Nov 9, 2026
b37cc4c
docs(time): Steer new measurements at the io.sentry.time clock APIs (…
runningcode Nov 9, 2026
2efb348
build(uitest): Disable lint's Gradle version check (#6515)
runningcode Nov 9, 2026
4a2c19f
build: Move aspectjweaver and kotlin-reflect to the version catalog (…
runningcode Nov 9, 2026
530623e
chore(deps): bump androidx.appcompat:appcompat from 1.3.0 to 1.7.1 (#…
dependabot[bot] Nov 9, 2026
a5d3cf6
fix(android): Don't block the main thread on the frame metrics looper…
romtsn Nov 9, 2026
eae1d70
fix(apollo): Skip failed-request body inspection for streaming respon…
lbloder Nov 9, 2026
ca1cfbc
fix(sample): Apply Nav3 sample options when a child Activity is resto…
0xadam-brown Nov 9, 2026
5652060
fix(profiling): Accept dots in the JVM profiling traces dir path (#6334)
runningcode Nov 9, 2026
76cb292
docs: Announce minSdk 24 instead of 26 for SDK 9 (#6521)
runningcode Nov 9, 2026
7c1d596
feat(opentelemetry): Honor OTEL_BSP_SCHEDULE_DELAY in the agent (#6388)
runningcode Nov 10, 2026
abede3e
chore(deps): bump getsentry/craft (#6527)
dependabot[bot] Nov 10, 2026
b277929
chore(deps): bump androidx.core:core-ktx from 1.7.0 to 1.19.1 (#6526)
dependabot[bot] Nov 10, 2026
62ffa2b
chore(deps): bump com.toasttab.android:gummy-bears-api-21 (#6525)
dependabot[bot] Nov 10, 2026
df34960
chore(deps): bump androidx.constraintlayout:constraintlayout (#6524)
dependabot[bot] Nov 10, 2026
f3a3bc4
ci(ui-tests): Key the AVD cache on the emulator version and give Maes…
markushi Nov 10, 2026
8f6ee96
Merge branch '9.x.x' into sync/main-to-9.x.x-2026-11-10
sentry-junior[bot] Nov 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .claude/skills/create-java-pr/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,10 @@ Derive the branch name from the changes being made. Use `feat/`, `fix/`, `ref/`,
## Step 2: Format Code and Regenerate API Files

```bash
./gradlew spotlessApply updateKotlinAbi
make format api
```

This is **required** before every PR in this repo. It formats all Java/Kotlin code via Spotless and regenerates the `.api` binary compatibility files.
This is **required** before every PR in this repo. It formats all Java/Kotlin code via Spotless, including the separate builds the root `spotlessApply` doesn't reach, and regenerates the `.api` binary compatibility files.

If the command fails, diagnose and fix the issue before continuing.

Expand Down
25 changes: 18 additions & 7 deletions .cursor/BUGBOT.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,26 @@ rule file in [`.cursor/rules/`](rules) for the area the diff touches (`api`, `op
- While we don't want to crash or hang the host application, we also don't want to leave the host
application in a bad or unrecoverable state. Therefore catch the narrowest type the guarded code
can throw.
- Existing broad catches like `catch (Throwable)` are legacy, not precedent. Where a broad catch is
genuinely unavoidable (an entry point running user code or third-party callbacks), it must call
`ExceptionUtils.rethrowIfFatal(t)` first and a code comment must say why the broad catch is
needed.
- Flag any new broad catch (`Throwable`, `Error`, `Exception`, `RuntimeException`) outside a
boundary where we can't know what the other side throws, e.g. public API entry points like
`captureException`, or Android framework calls that cross into another process
(`ContentResolver`, system services). Existing broad catches are legacy, not precedent. See the
Exception Handling section in `AGENTS.md`.
- A broad catch at a boundary must call `ExceptionUtils.rethrowIfFatal(t)` first and requires a
code comment saying why the catch is broad and what happens on failure (event dropped, feature
disabled, ...).
- A broad catch that wraps user code requires documentation, both in code and in sentry-docs,
explaining how the user is expected to discover that the code they wrote isn't working.
sentry-docs is a separate repository, so ask the author to link the docs PR.
- Code probing for an optional `compileOnly` dependency must catch the specific `LinkageError`
subclass (`NoClassDefFoundError`, `NoSuchMethodError`, ...) only.
subclass (`NoClassDefFoundError`, `NoSuchMethodError`, ...). Flag a probe guarded only by a broad
catch with `rethrowIfFatal`: it rethrows every `LinkageError`, crashing the host app when the
dependency is missing.
- Logging is not handling: `options.getLogger()` is silent unless `debug` is enabled. When a catch
only logs, ask the author what the customer sees when it fires.
- The SDK must never `captureException`/`captureMessage` for its own failures or for exceptions
thrown inside user callbacks (`beforeSend`, `beforeBreadcrumb`, `tracesSampler`, ...). Log via
`options.getLogger()` instead — capturing here loops. See
thrown inside user callbacks (`beforeSend`, `beforeBreadcrumb`, `tracesSampler`, ...) — capturing
here loops. See
[Never capture your own exceptions](https://develop.sentry.dev/sdk/getting-started/principles/#never-capture-your-own-exceptions).
- Flag `System.out`/`System.err`, `printStackTrace()`, and `android.util.Log` in SDK source; use
`options.getLogger().log(...)`.
Expand Down
5 changes: 3 additions & 2 deletions .cursor/rules/e2e_tests.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,9 @@ it. Gradle runs the two in parallel.
customizes, and that the OpenTelemetry starter instruments, so it adds or replaces trace headers
on the requests a test sends. Build one outside the context.
- Sentry exports OpenTelemetry spans in batches every 5 seconds. In-process, flush the tracer
provider from the server's hook. With the agent this isn't possible, so each test waits for a
batch and negative checks wait at least 6 seconds.
provider from the server's hook. With the agent this isn't possible, so set
`OTEL_BSP_SCHEDULE_DELAY` on the app to shorten the batch delay, and make negative checks wait
well past it.
- Sentry is global, so a second live Spring context in an OpenTelemetry suite takes it over. Keep
one live context per JVM (`@DirtiesContext` when a test needs its own).
- The async profiler rejects a traces path with a `.` anywhere in its absolute form. Put the path
Expand Down
15 changes: 5 additions & 10 deletions .cursor/rules/new_module.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,11 @@ the release that first ships it. All of the following have to be merged **before

2. Add the module to the include list in `settings.gradle.kts`

If adding a `sentry-samples` module, also add it to the `ignoredProjects` list in the root `build.gradle.kts`:

```kotlin
ignoredProjects.addAll(
listOf(
// ... existing projects ...
"sentry-samples-{module-name}"
)
)
```
If adding a sample, add an `include("…")` line for it to `sentry-samples/settings.gradle.kts`
instead, and apply `id("io.sentry.spotless")` and `id("io.sentry.jdk-target")` in its `plugins`
block. The samples are a separate Gradle build that includes the SDK build, so a sample depends on
`"io.sentry:sentry-{module-name}:$sentryVersion"` (with `val sentryVersion =
libs.versions.sentry.get()`), and Gradle substitutes the SDK's project for it.

3. Add a `SENTRY_{MODULE}_SDK_NAME` constant to the `Config.Sentry` block in
`buildSrc/src/main/java/Config.kt`:
Expand Down
7 changes: 6 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,12 @@ registries:
password: dummy # Required by dependabot
updates:
- package-ecosystem: "gradle"
directory: "/"
# The root build doesn't include the separate sample and test builds.
directories:
- "/"
- "/sentry-samples/sentry-samples-android"
- "/sentry-android-integration-tests"
- "/sentry-samples"
registries:
- gradle-plugin-portal
schedule:
Expand Down
35 changes: 26 additions & 9 deletions .github/workflows/agp-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,15 @@ jobs:
env:
VERSION_AGP: ${{ matrix.agp }}
APPLY_SENTRY_INTEGRATIONS: ${{ matrix.integrations }}
# Upload replay snapshots from one cell only. Forks don't have access to the upload secret.
UPLOAD_REPLAY_SNAPSHOTS: ${{ matrix.agp == '9.4.0' && matrix.integrations && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }}

steps:
- name: Checkout Repo
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Setup Java Version
uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6.1.0
uses: actions/setup-java@77dd5b2ce225ea11469928ac317850245a74ae78 # v6.2.0
with:
distribution: 'temurin'
java-version: '21'
Expand All @@ -51,20 +53,21 @@ jobs:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-api-30-x86_64-aosp_atd
key: avd-api-30-x86_64-google_apis

- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@a421e43855164a8197daf9d8d40fe71c6996bb0d # pin@v2
with:
api-level: 30
target: aosp_atd
channel: canary # Necessary for ATDs
# Not an ATD image: PixelCopy returns no data on ATDs, which the replay tests need
target: google_apis
channel: canary
arch: x86_64
force-avd-creation: false
disable-animations: true
disable-spellchecker: true
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
emulator-options: -memory 4096 -no-window -gpu auto -noaudio -no-boot-anim -camera-back none
disk-size: 4096M
script: echo "Generated AVD snapshot for caching."

Expand All @@ -77,15 +80,28 @@ jobs:
uses: reactivecircus/android-emulator-runner@a421e43855164a8197daf9d8d40fe71c6996bb0d # pin@v2
with:
api-level: 30
target: aosp_atd
channel: canary # Necessary for ATDs
# Not an ATD image: PixelCopy returns no data on ATDs, which the replay tests need
target: google_apis
channel: canary
arch: x86_64
force-avd-creation: false
disable-animations: true
disable-spellchecker: true
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
emulator-options: -memory 4096 -no-snapshot-save -no-window -gpu auto -noaudio -no-boot-anim -camera-back none
disk-size: 4096M
script: ./gradlew sentry-android-integration-tests:sentry-uitest-android:connectedReleaseAndroidTest -Denvironment=github --daemon
script: ./scripts/test-ui-android.sh replay-snapshots

- name: Install Sentry CLI
if: ${{ !cancelled() && env.UPLOAD_REPLAY_SNAPSHOTS == 'true' }}
uses: getsentry/action-setup-cli@70d7e587b84c2e78cf4d37cd33d7b74fb3729c1b # v1

- name: Upload Replay Snapshots to Sentry
if: ${{ !cancelled() && env.UPLOAD_REPLAY_SNAPSHOTS == 'true' && hashFiles('replay-snapshots/*.png') != '' }}
run: sentry-cli snapshots upload ./replay-snapshots --app-id sentry-android-replay
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: sentry-sdks
SENTRY_PROJECT: sentry-android

- name: Upload test results
if: always()
Expand All @@ -96,6 +112,7 @@ jobs:
**/build/reports/*
**/build/outputs/*/connected/*
**/build/outputs/mapping/release/*
replay-snapshots/

- name: Test Report
uses: phoenix-actions/test-reporting@7317eea6e13c47348dd0bb318669485157c518d6 # pin@v16
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
ref: ${{ github.event.pull_request.head.sha || github.sha }}

- name: Setup Java Version
uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6.1.0
uses: actions/setup-java@77dd5b2ce225ea11469928ac317850245a74ae78 # v6.2.0
with:
distribution: 'temurin'
java-version: '21'
Expand Down
78 changes: 73 additions & 5 deletions .github/workflows/changes-in-high-risk-code.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,79 @@ jobs:
high_risk_code: ${{ needs.files-changed.outputs.high_risk_code_files }}
with:
script: |
const highRiskFiles = process.env.high_risk_code;
const fileList = highRiskFiles.split(',').map(file => `- [ ] ${file}`).join('\n');
github.rest.issues.createComment({
const highRiskFiles = process.env.high_risk_code
.split(',')
.map(file => file.trim())
.filter(Boolean);

const marker = '🚨 Detected changes in high risk code 🚨';
const intro = `### ${marker} \n High-risk code has higher potential to break the SDK and may be hard to test. To prevent severe bugs, apply the rollout process for releasing such changes and be extra careful when changing and reviewing these files:`;

const buildBody = (files, checkedFiles = new Set()) => {
const fileList = files
.map(file => `- [${checkedFiles.has(file) ? 'x' : ' '}] ${file}`)
.join('\n');
return `${intro}\n${fileList}`;
};

const parseCheckedFiles = (commentBody = '') => {
const checked = new Set();
for (const match of commentBody.matchAll(/^[ \t]*- \[x\] (.+)$/gim)) {
checked.add(match[1].trim());
}
return checked;
};

const parseListedFiles = (commentBody = '') => {
const listed = [];
for (const match of commentBody.matchAll(/^[ \t]*- \[[ xX]\] (.+)$/gim)) {
listed.push(match[1].trim());
}
return listed;
};

const sameFileSet = (a, b) => {
if (a.length !== b.length) return false;
const left = [...a].sort().join('\n');
const right = [...b].sort().join('\n');
return left === right;
};

// Get existing comments (paginate so older comments are not missed)
const comments = await github.paginate(github.rest.issues.listComments, {
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `### 🚨 Detected changes in high risk code 🚨 \n High-risk code has higher potential to break the SDK and may be hard to test. To prevent severe bugs, apply the rollout process for releasing such changes and be extra careful when changing and reviewing these files:\n ${fileList}`
})
per_page: 100
});

const existingComment = comments.find(comment =>
comment.body?.includes(marker)
);

// Keep one warning comment. Only rewrite when the file set changes,
// and preserve reviewer checkbox state for files that remain.
if (existingComment) {
const previousFiles = parseListedFiles(existingComment.body);
if (sameFileSet(previousFiles, highRiskFiles)) {
return;
}

const body = buildBody(
highRiskFiles,
parseCheckedFiles(existingComment.body)
);
await github.rest.issues.updateComment({
comment_id: existingComment.id,
owner: context.repo.owner,
repo: context.repo.repo,
body
});
} else {
await github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: buildBody(highRiskFiles)
});
}
6 changes: 3 additions & 3 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Setup Java Version
uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6.1.0
uses: actions/setup-java@77dd5b2ce225ea11469928ac317850245a74ae78 # v6.2.0
with:
distribution: 'temurin'
java-version: '21'
Expand All @@ -29,7 +29,7 @@ jobs:
uses: gradle/actions/setup-gradle@8da46b539cd8fe6ab27ca75128919a18d757604c # v6.4.1

- name: Initialize CodeQL
uses: github/codeql-action/init@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # pin@v2
uses: github/codeql-action/init@33d7b85da1a04171e211befe2c739303b9a4c066 # pin@v2
with:
languages: 'java'

Expand All @@ -38,4 +38,4 @@ jobs:
./gradlew buildForCodeQL --no-build-cache

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@9b3254085494b55a0f7c4c2b3d2d52cc712ce370 # pin@v2
uses: github/codeql-action/analyze@33d7b85da1a04171e211befe2c739303b9a4c066 # pin@v2
2 changes: 1 addition & 1 deletion .github/workflows/enforce-license-compliance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
uses: gradle/actions/setup-gradle@8da46b539cd8fe6ab27ca75128919a18d757604c # v6.4.1

- name: Set up Java
uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6.1.0
uses: actions/setup-java@77dd5b2ce225ea11469928ac317850245a74ae78 # v6.2.0
with:
distribution: 'temurin'
java-version: '21'
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/format-code.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: set up JDK 17
uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6.1.0
uses: actions/setup-java@77dd5b2ce225ea11469928ac317850245a74ae78 # v6.2.0
with:
distribution: 'temurin'
java-version: '21'
Expand All @@ -20,7 +20,7 @@ jobs:
uses: gradle/actions/setup-gradle@8da46b539cd8fe6ab27ca75128919a18d757604c # v6.4.1

- name: Format with spotlessApply
run: ./gradlew spotlessApply
run: make format

# actions/checkout fetches only a single commit in a detached HEAD state. Therefore
# we need to pass the current branch, otherwise we can't commit the changes.
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/generate-javadocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: set up JDK 17
uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6.1.0
uses: actions/setup-java@77dd5b2ce225ea11469928ac317850245a74ae78 # v6.2.0
with:
distribution: 'temurin'
java-version: '21'
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/integration-tests-macrobenchmark.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: 'Integration Tests - Macrobenchmark'
# Runs the sentry-uitest-android-macrobenchmark cold-start benchmark on a Sauce Labs real
# Runs the sentry-samples-android macrobenchmark cold-start benchmark on a Sauce Labs real
# device and recovers timeToInitialDisplay from the device log.
#
on:
Expand All @@ -23,7 +23,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: 'Set up Java: 17'
uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6.1.0
uses: actions/setup-java@77dd5b2ce225ea11469928ac317850245a74ae78 # v6.2.0
with:
distribution: 'temurin'
java-version: '21'
Expand All @@ -33,7 +33,7 @@ jobs:

- name: Assemble target app and Macrobenchmark apk
if: env.SAUCE_USERNAME != null
run: ./gradlew :sentry-samples:sentry-samples-android:assembleRelease :sentry-android-integration-tests:sentry-uitest-android-macrobenchmark:assembleBenchmark
run: ./gradlew -p sentry-samples/sentry-samples-android :assembleRelease :macrobenchmark:assembleBenchmark

- name: Run Macrobenchmark in SauceLab
uses: saucelabs/saucectl-run-action@283660aa934c02723c497efa151d582a3acc5801 # pin@v3
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/integration-tests-size.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Setup Java Version
uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6.1.0
uses: actions/setup-java@77dd5b2ce225ea11469928ac317850245a74ae78 # v6.2.0
with:
distribution: "temurin"
java-version: "21"
Expand All @@ -29,6 +29,6 @@ jobs:
uses: gradle/actions/setup-gradle@8da46b539cd8fe6ab27ca75128919a18d757604c # v6.4.1

- name: Size Analysis
run: ./gradlew :sentry-android-integration-tests:test-app-size:bundleRelease
run: ./gradlew -p sentry-android-integration-tests :test-app-size:bundleRelease
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
Loading
Loading