Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
44 changes: 42 additions & 2 deletions .github/workflows/device-tests-android.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,48 @@ on:
- main
- release/*
pull_request:
paths-ignore:
- "**.md"
paths:
# Core SDK (transitive dependency of all mobile packages)
- 'src/Sentry/**'
- 'src/Sentry.Extensions.Logging/**'
Comment on lines +9 to +12
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Previously this workflow would not run for PRs that only changed *.md files. With pull_request.paths alone, a docs-only change under a listed directory (e.g. src/Sentry/**/README.md) will now trigger the full device test suite. If you want to preserve the prior behavior, add a pull_request.paths-ignore entry for **/*.md alongside paths.

Copilot uses AI. Check for mistakes.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rejected. GitHub Actions does support combining paths and paths-ignore, but this is an extremely rare edge case — someone would need to edit a markdown file inside src/Sentry/ (these source directories almost never contain .md files). The cost of a false trigger is just one unnecessary CI run, while adding paths-ignore adds complexity for near-zero benefit. The push trigger on main/release catches everything anyway.

- 'src/Sentry.Compiler.Extensions/**'
# Mobile-specific packages
- 'src/Sentry.Maui/**'
- 'src/Sentry.Maui.CommunityToolkit.Mvvm/**'
- 'src/Sentry.Bindings.Android/**'
- 'src/Sentry.Bindings.Cocoa/**'
- 'src/Sentry.Android.AssemblyReader/**'
# Device test app and test projects that run on device
- 'test/Sentry.Maui.Device.TestApp/**'
- 'test/Sentry.Tests/**'
- 'test/Sentry.Extensions.Logging.Tests/**'
- 'test/Sentry.Maui.Tests/**'
- 'test/Sentry.Maui.CommunityToolkit.Mvvm.Tests/**'
- 'test/Sentry.Android.AssemblyReader.Tests/**'
- 'test/Sentry.Testing/**'
- 'test/AndroidTestApp/**'
# Integration tests
- 'integration-test/android.Tests.ps1'
- 'integration-test/ios.Tests.ps1'
- 'integration-test/net9-maui/**'
- 'integration-test/common.ps1'
- 'integration-test/Directory.Build.*'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing integration-test/pester.ps1 in path filters

Low Severity

The integration-test/pester.ps1 file is sourced by both android.Tests.ps1 and ios.Tests.ps1 (and common.ps1) but is not listed in the paths filter. A PR that only modifies pester.ps1 — which defines the custom ShouldAnyElementMatch Pester assertion operator used in integration test assertions — would not trigger device tests. The integration-test section lists common.ps1 and the two *.Tests.ps1 files individually but omits this shared dependency.

Additional Locations (1)

Fix in Cursor Fix in Web

# Native libraries and modules
- 'lib/sentrysupplemental/**'
- 'lib/sentry-android-supplemental/**'
- 'modules/sentry-native/**'
- 'modules/sentry-cocoa/**'
- 'modules/sentry-cocoa.properties'
# Build configuration (affects all builds)
- 'global.json'
- 'Directory.Build.props'
- 'Directory.Build.targets'
- 'nuget.config'
# Scripts and CI
- 'scripts/device-test.ps1'
- 'scripts/device-test-utils.ps1'
- '.github/workflows/device-tests-android.yml'
- '.github/actions/**'
Comment on lines 9 to 50

This comment was marked as resolved.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Accepted (mostly). Added the following missing paths in 835075a:

  • global.json, Directory.Build.props, Directory.Build.targets, nuget.config
  • lib/sentrysupplemental/**, lib/sentry-android-supplemental/**
  • modules/sentry-cocoa/**, modules/sentry-cocoa.properties
  • test/AndroidTestApp/**
  • integration-test/common.ps1, integration-test/Directory.Build.*

Rejected scripts/install-libssl1.sh — it's a Linux-only libssl1 installer for legacy .NET 5.0 runtime, not referenced by any device test workflow.

Rejected integration-test/pester.ps1 — it's a PowerShell test framework extension, not specific to device tests.

workflow_dispatch:

jobs:
Expand Down
44 changes: 42 additions & 2 deletions .github/workflows/device-tests-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,48 @@ on:
- main
- release/*
pull_request:
paths-ignore:
- "**.md"
paths:
# Core SDK (transitive dependency of all mobile packages)
- 'src/Sentry/**'
- 'src/Sentry.Extensions.Logging/**'
- 'src/Sentry.Compiler.Extensions/**'
# Mobile-specific packages
- 'src/Sentry.Maui/**'
- 'src/Sentry.Maui.CommunityToolkit.Mvvm/**'
- 'src/Sentry.Bindings.Android/**'
- 'src/Sentry.Bindings.Cocoa/**'
- 'src/Sentry.Android.AssemblyReader/**'
# Device test app and test projects that run on device
- 'test/Sentry.Maui.Device.TestApp/**'
- 'test/Sentry.Tests/**'
- 'test/Sentry.Extensions.Logging.Tests/**'
- 'test/Sentry.Maui.Tests/**'
- 'test/Sentry.Maui.CommunityToolkit.Mvvm.Tests/**'
- 'test/Sentry.Android.AssemblyReader.Tests/**'
- 'test/Sentry.Testing/**'
- 'test/AndroidTestApp/**'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Identical path filters cause unnecessary cross-platform CI runs

Low Severity

The path filters in both workflow files are identical (copy-pasted), so Android-only paths like src/Sentry.Bindings.Android/**, test/AndroidTestApp/**, lib/sentry-android-supplemental/**, and integration-test/android.Tests.ps1 unnecessarily trigger iOS tests on expensive macOS runners. Conversely, iOS-only paths like src/Sentry.Bindings.Cocoa/**, modules/sentry-cocoa/**, and integration-test/ios.Tests.ps1 unnecessarily trigger Android emulator jobs. This directly undermines the PR's goal of reducing CI compute.

Additional Locations (1)

Fix in Cursor Fix in Web

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's true... it could be optimised a bit further. That would be quite useful when working on iOS exclusively or just Android (which we frequently do).

# Integration tests
- 'integration-test/android.Tests.ps1'
- 'integration-test/ios.Tests.ps1'
- 'integration-test/net9-maui/**'
- 'integration-test/common.ps1'
- 'integration-test/Directory.Build.*'
# Native libraries and modules
- 'lib/sentrysupplemental/**'
- 'lib/sentry-android-supplemental/**'
- 'modules/sentry-native/**'
- 'modules/sentry-cocoa/**'
- 'modules/sentry-cocoa.properties'
# Build configuration (affects all builds)
- 'global.json'
- 'Directory.Build.props'
- 'Directory.Build.targets'
- 'nuget.config'
# Scripts and CI
- 'scripts/device-test.ps1'
- 'scripts/device-test-utils.ps1'
- '.github/workflows/device-tests-ios.yml'
- '.github/actions/**'
workflow_dispatch:

jobs:
Expand Down
Loading