From e621a7f44f580220eca8590dd5b9232427055603 Mon Sep 17 00:00:00 2001 From: ImmutableJeffrey Date: Thu, 30 Apr 2026 15:33:51 +1000 Subject: [PATCH] ci(audience-sdk): scope path filters to source-affecting paths only (SDK-268) Replaces the blanket src/Packages/Audience/** and examples/audience/** match with explicit allow-lists, so doc-only PRs (README.md, gitignore, etc.) no longer schedule the 12-cell PlayMode matrix or the .NET unit tests. Triggers now require a change to one of: - src/Packages/Audience/Runtime/** - src/Packages/Audience/Tests/** - src/Packages/Audience/package.json - src/Packages/Audience/Directory.Build.props - src/Packages/Audience/link.xml (IL2CPP stripping config) - examples/audience/Assets/** (sample-app workflow only) - examples/audience/Packages/** (sample-app workflow only) - examples/audience/ProjectSettings/** (sample-app workflow only) - the workflow file itself paths-ignore is not viable here: it only suppresses a workflow when every changed file matches the ignore list, so a mixed PR (markdown + package.json) would still trigger. Allow-listing is the only filter shape that handles this correctly. package.json stays in the trigger because real version, dependency, and unity-minimum changes live there and the matrix is exactly what should catch a typo. The cost of running on a metadata-only edit is the price of treating package.json as load-bearing. link.xml is included because it controls which managed types survive IL2CPP stripping in Player builds. A change there can produce runtime-only failures that only the PlayMode matrix can catch. Linear: SDK-268 Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/test-audience-sample-app.yml | 10 ++++++++-- .github/workflows/test-audience-sdk.yml | 12 ++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test-audience-sample-app.yml b/.github/workflows/test-audience-sample-app.yml index 1ef9bf247..004aebcf6 100644 --- a/.github/workflows/test-audience-sample-app.yml +++ b/.github/workflows/test-audience-sample-app.yml @@ -3,8 +3,14 @@ name: Audience SDK — PlayMode (IL2CPP + Mono) on: pull_request: paths: - - 'src/Packages/Audience/**' - - 'examples/audience/**' + - 'src/Packages/Audience/Runtime/**' + - 'src/Packages/Audience/Tests/**' + - 'src/Packages/Audience/package.json' + - 'src/Packages/Audience/Directory.Build.props' + - 'src/Packages/Audience/link.xml' + - 'examples/audience/Assets/**' + - 'examples/audience/Packages/**' + - 'examples/audience/ProjectSettings/**' - '.github/workflows/test-audience-sample-app.yml' workflow_dispatch: diff --git a/.github/workflows/test-audience-sdk.yml b/.github/workflows/test-audience-sdk.yml index 11b133f00..9bbf8230a 100644 --- a/.github/workflows/test-audience-sdk.yml +++ b/.github/workflows/test-audience-sdk.yml @@ -4,11 +4,19 @@ on: push: branches: [main] paths: - - 'src/Packages/Audience/**' + - 'src/Packages/Audience/Runtime/**' + - 'src/Packages/Audience/Tests/**' + - 'src/Packages/Audience/package.json' + - 'src/Packages/Audience/Directory.Build.props' + - 'src/Packages/Audience/link.xml' - '.github/workflows/test-audience-sdk.yml' pull_request: paths: - - 'src/Packages/Audience/**' + - 'src/Packages/Audience/Runtime/**' + - 'src/Packages/Audience/Tests/**' + - 'src/Packages/Audience/package.json' + - 'src/Packages/Audience/Directory.Build.props' + - 'src/Packages/Audience/link.xml' - '.github/workflows/test-audience-sdk.yml' jobs: