Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
65bfb99
First iteration
bitsandfoxes Feb 13, 2026
d90e410
Fixes
bitsandfoxes Feb 13, 2026
323d187
Remove startup awake span assertion
bitsandfoxes Feb 16, 2026
5b30b7d
Fixed desktop test validation order
bitsandfoxes Feb 16, 2026
20554a9
Fixed single-line pwsh command
bitsandfoxes Feb 16, 2026
b899cc5
strictmode workaround
bitsandfoxes Feb 16, 2026
7c93e12
Baking the DSN
bitsandfoxes Feb 16, 2026
3dceec0
.
bitsandfoxes Feb 16, 2026
e999f6e
Fix env
bitsandfoxes Feb 16, 2026
b6fc8a2
.
bitsandfoxes Feb 16, 2026
f39fb13
Fix double event capture
bitsandfoxes Feb 16, 2026
3902b68
Fixed log grouping
bitsandfoxes Feb 16, 2026
0638d92
Debug log level
bitsandfoxes Feb 16, 2026
f05f223
Fixing 'dist'
bitsandfoxes Feb 16, 2026
160f355
fallback to activity
bitsandfoxes Feb 16, 2026
f5e1c10
Do some fake work
bitsandfoxes Feb 16, 2026
10ba69c
Drop stripping level for older than 6
bitsandfoxes Feb 17, 2026
c2e1256
Fixed vulkan issues
bitsandfoxes Feb 17, 2026
a0318cf
Code generation settings and log output
bitsandfoxes Feb 17, 2026
aa815ff
AOT check
bitsandfoxes Feb 17, 2026
fc3c734
Bumped .NET to 'main'
bitsandfoxes Feb 19, 2026
ab6d14e
Mark crash-capture skipped tests as Skipped instead of silently passing
bitsandfoxes Feb 19, 2026
af19c5e
Extending the tests of scope sync to the crash tests
bitsandfoxes Feb 19, 2026
9588ff9
Skip app context assertion for crash-capture on Android
bitsandfoxes Feb 19, 2026
0ffce53
Improved on the crashed second run validation
bitsandfoxes Feb 19, 2026
8be86be
Incremental fix
bitsandfoxes Feb 19, 2026
d6c5084
Activity detection instead of try-catch
bitsandfoxes Feb 19, 2026
bf353f6
Get built-time check back in
bitsandfoxes Feb 20, 2026
d0e10ea
feedback
bitsandfoxes Feb 20, 2026
0cc6ab4
skip 'dist' for now
bitsandfoxes Feb 20, 2026
641f5e1
Apply suggestion from @bitsandfoxes
bitsandfoxes Feb 20, 2026
36943c3
Migrate iOS CI to use app-runner
bitsandfoxes Feb 23, 2026
8322cbd
bump app-runner
bitsandfoxes Feb 23, 2026
9cf1ec5
fixes
bitsandfoxes Feb 24, 2026
7f03d3f
Fix iOS integration test configuration
bitsandfoxes Feb 24, 2026
5915218
Timeout and retry
bitsandfoxes Feb 24, 2026
0965ded
machine feedback
bitsandfoxes Feb 25, 2026
0457ff8
Merge branch 'main' into feat/app-runner-ios
bitsandfoxes Feb 25, 2026
5f18483
timeout tweaks
bitsandfoxes Feb 25, 2026
5af6bdd
.
bitsandfoxes Feb 25, 2026
0f34226
Merge branch 'main' into feat/app-runner-ios
bitsandfoxes Feb 26, 2026
3d035ca
bumped app-runner
bitsandfoxes Feb 26, 2026
5a96ca9
Scope app context crash-capture skip to iOS only
bitsandfoxes Feb 26, 2026
8ce299c
Merge branch 'main' into feat/app-runner-ios
bitsandfoxes Feb 26, 2026
8803de8
bumped app-runner
bitsandfoxes Mar 3, 2026
b24c02a
desktop building and running
bitsandfoxes Mar 3, 2026
fbd0106
symbol upload
bitsandfoxes Mar 3, 2026
0c827ab
windows docker tweaks
bitsandfoxes Mar 3, 2026
8713530
fix unboun variable
bitsandfoxes Mar 3, 2026
a69115d
muck around with docker
bitsandfoxes Mar 3, 2026
c444ba6
more windows docker fun
bitsandfoxes Mar 3, 2026
7c78621
diagnostics
bitsandfoxes Mar 3, 2026
f9badd7
docker..
bitsandfoxes Mar 3, 2026
bcd7dff
unity path inside the container
bitsandfoxes Mar 3, 2026
b255005
pin win22, nographics
bitsandfoxes Mar 3, 2026
86f5906
back to win25. unity 6.3?
bitsandfoxes Mar 3, 2026
a1644da
nographics duplication
bitsandfoxes Mar 3, 2026
c5b3d03
handle 'nopgraphics'
bitsandfoxes Mar 4, 2026
dda6bf8
restructured desktop
bitsandfoxes Mar 4, 2026
29b84a8
remove windows docker
bitsandfoxes Mar 4, 2026
336c1b6
.
bitsandfoxes Mar 4, 2026
887c96b
stoptheslop
bitsandfoxes Mar 4, 2026
b533abf
routing log output to stdout
bitsandfoxes Mar 4, 2026
923c1cf
upsi
bitsandfoxes Mar 4, 2026
f5ffb41
run the app directly
bitsandfoxes Mar 4, 2026
d741d70
crashtype
bitsandfoxes Mar 4, 2026
6dff615
cleanup
bitsandfoxes Mar 4, 2026
cc11c6c
cleanup
bitsandfoxes Mar 4, 2026
dca01a5
merged *-run-* for desktop
bitsandfoxes Mar 4, 2026
d82cd1e
webgl
bitsandfoxes Mar 4, 2026
6ff3b4b
os
bitsandfoxes Mar 4, 2026
7a07b5d
Merge branch 'main' into chore/desktop-integration-test
bitsandfoxes Mar 5, 2026
5e93b72
Merge branch 'chore/desktop-integration-test' into feat/app-runner-webgl
bitsandfoxes Mar 5, 2026
3e8bf00
review
bitsandfoxes Mar 5, 2026
28a6b5a
message parsing
bitsandfoxes Mar 5, 2026
f13af9c
log printing
bitsandfoxes Mar 5, 2026
be0c49a
spaces in paths
bitsandfoxes Mar 5, 2026
f38c140
fixed webbackgroundworker
bitsandfoxes Mar 5, 2026
cb7d0d1
trycatch
bitsandfoxes Mar 5, 2026
6c0a10d
Merge branch 'main' into feat/app-runner-webgl
bitsandfoxes Mar 5, 2026
ba8ca92
third merge hickup
bitsandfoxes Mar 5, 2026
747d68b
.
bitsandfoxes Mar 6, 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
36 changes: 10 additions & 26 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -189,9 +189,10 @@ jobs:
run: ./test/Scripts.Integration.Test/add-sentry.ps1 -UnityPath "$env:UNITY_PATH" -PackagePath "test-package-release"

- name: Configure Sentry
run: ./test/Scripts.Integration.Test/configure-sentry.ps1 -UnityPath "$env:UNITY_PATH" -Platform "$env:BUILD_PLATFORM" -CheckSymbols
run: ./test/Scripts.Integration.Test/configure-sentry.ps1 -UnityPath "$env:UNITY_PATH" -Platform "$env:BUILD_PLATFORM" -CheckSymbols -TestMode "integration"
env:
BUILD_PLATFORM: ${{ matrix.build_platform }}
SENTRY_DSN: ${{ secrets.SENTRY_TEST_DSN }}

- name: Build Project
run: ./test/Scripts.Integration.Test/build-project.ps1 -UnityPath "$env:UNITY_PATH" -Platform "$env:BUILD_PLATFORM" -CheckSymbols:$([System.Convert]::ToBoolean($env:CHECK_SYMBOLS)) -UnityVersion "$env:UNITY_VERSION"
Expand Down Expand Up @@ -219,15 +220,14 @@ jobs:
run: |
# Note: remove local.properties file that contains Android SDK & NDK paths in the Unity installation.
rm -rf samples/IntegrationTest/Build/*_BackUpThisFolder_ButDontShipItWithYourGame
tar -cvzf test-app-runtime.tar.gz samples/IntegrationTest/Build
tar -cvzf test-app-webgl.tar.gz samples/IntegrationTest/Build

# Upload runtime initialization build
- name: Upload test app
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: testapp-${{ matrix.platform }}-${{ matrix.unity-version }}-runtime
name: testapp-webgl-compiled-${{ matrix.unity-version }}
if-no-files-found: error
path: test-app-runtime.tar.gz
path: test-app-webgl.tar.gz
retention-days: 14

- name: Upload IntegrationTest project on failure
Expand Down Expand Up @@ -325,33 +325,17 @@ jobs:
# - https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md

smoke-test-run-webgl:
name: Run ${{ matrix.platform }} ${{ matrix.unity-version }} Smoke Test
name: Run WebGL ${{ matrix.unity-version }} Integration Test
if: ${{ !startsWith(github.ref, 'refs/heads/release/') }}
needs: [smoke-test-build-webgl, create-unity-matrix]
runs-on: ubuntu-latest
secrets: inherit
strategy:
fail-fast: false
matrix:
unity-version: ${{ fromJSON(needs.create-unity-matrix.outputs.unity-matrix).unity-version }}
platform: ["WebGL"]
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Download test app artifact
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
id: download
with:
name: testapp-${{ matrix.platform }}-${{ matrix.unity-version }}-runtime

- name: Extract test app
run: tar -xvzf test-app-runtime.tar.gz

- name: Run (WebGL)
timeout-minutes: 10
run: |
pip3 install --upgrade --user selenium urllib3 requests
python3 scripts/smoke-test-webgl.py "samples/IntegrationTest/Build"
uses: ./.github/workflows/smoke-test-run-webgl.yml
with:
unity-version: ${{ matrix.unity-version }}

smoke-test-build-linux:
name: Build Linux ${{ matrix.unity-version }} Integration Test
Expand Down
54 changes: 54 additions & 0 deletions .github/workflows/smoke-test-run-webgl.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: "IntegrationTest: Run WebGL"
on:
workflow_call:
inputs:
unity-version:
required: true
type: string

defaults:
run:
shell: pwsh

jobs:
run:
name: WebGL ${{ inputs.unity-version }}
runs-on: ubuntu-latest
env:
SENTRY_TEST_DSN: ${{ secrets.SENTRY_TEST_DSN }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}

steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4

- name: Initialize app-runner submodule
run: git submodule update --init modules/app-runner
shell: bash

- name: Download test app artifact
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
name: testapp-webgl-compiled-${{ inputs.unity-version }}

- name: Extract test app
run: tar -xvzf test-app-webgl.tar.gz

- name: Install Selenium
run: pip3 install --upgrade selenium
shell: bash

- name: Run Integration Tests
timeout-minutes: 20
run: |
$env:SENTRY_WEBGL_BUILD_PATH = "samples/IntegrationTest/Build"
Invoke-Pester -Path test/IntegrationTest/Integration.Tests.WebGL.ps1 -CI

- name: Upload test results on failure
if: ${{ failure() }}
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: testapp-webgl-logs-${{ inputs.unity-version }}
path: |
test/IntegrationTest/results/
retention-days: 14
2 changes: 1 addition & 1 deletion Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ Related: https://forum.unity.com/threads/6572-debugger-agent-unable-to-listen-on

<!-- Run smoke test on the WebGL player: dotnet msbuild /t:UnitySmokeTestPlayerWebGL src/Sentry.Unity -->
<Target Name="UnitySmokeTestPlayerWebGL" Condition="'$(MSBuildProjectName)' == 'Sentry.Unity'">
<Exec Command="python3 -X utf8 &quot;$(RepoRoot)scripts/smoke-test-webgl.py&quot;" IgnoreStandardErrorWarningFormat="true"/>
<Exec Command="pwsh -Command &quot;Invoke-Pester -Path '$(RepoRoot)test/IntegrationTest/Integration.Tests.WebGL.ps1' -CI&quot;" IgnoreStandardErrorWarningFormat="true"/>
</Target>

<!-- Run PlayMode tests with dotnet msbuild /t:UnityPlayModeTest test/Sentry.Unity.Tests -->
Expand Down
216 changes: 0 additions & 216 deletions scripts/smoke-test-webgl.py

This file was deleted.

18 changes: 16 additions & 2 deletions src/Sentry.Unity/UnityWebRequestTransport.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ internal class WebBackgroundWorker : IBackgroundWorker
{
private readonly SentryMonoBehaviour _behaviour;
private readonly UnityWebRequestTransport _transport;
private int _pendingItems;

public WebBackgroundWorker(SentryUnityOptions options, SentryMonoBehaviour behaviour)
{
Expand All @@ -24,13 +25,26 @@ public WebBackgroundWorker(SentryUnityOptions options, SentryMonoBehaviour behav

public bool EnqueueEnvelope(Envelope envelope)
{
_behaviour.QueueCoroutine(_transport.SendEnvelopeAsync(envelope));
_pendingItems++;
_behaviour.QueueCoroutine(SendAndTrack(envelope));
return true;
}

private IEnumerator SendAndTrack(Envelope envelope)
{
try
{
yield return _transport.SendEnvelopeAsync(envelope);
}
finally
{
_pendingItems--;
}
}

public Task FlushAsync(TimeSpan timeout) => Task.CompletedTask;

public int QueuedItems { get; }
public int QueuedItems => _pendingItems;
}

internal class UnityWebRequestTransport : HttpTransportBase
Expand Down
5 changes: 5 additions & 0 deletions test/IntegrationTest/CommonTestCases.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,11 @@ $CommonTestCases = @(
@{ Name = "Contains OS context"; TestBlock = {
param($TestSetup, $TestType, $SentryEvent, $RunResult)
$SentryEvent.contexts.os | Should -Not -BeNullOrEmpty

if ($TestSetup.Platform -eq "WebGL") {
Set-ItResult -Skipped -Because "OS name is not available in the browser sandbox"
return
}
$SentryEvent.contexts.os.name | Should -Not -BeNullOrEmpty
}
}
Expand Down
Loading
Loading