Skip to content

ci(audience-sdk): stop running Unity tests on docs-only PRs (SDK-268)#720

Merged
ImmutableJeffrey merged 1 commit into
mainfrom
ci/sdk-268-audience-path-filters
Apr 30, 2026
Merged

ci(audience-sdk): stop running Unity tests on docs-only PRs (SDK-268)#720
ImmutableJeffrey merged 1 commit into
mainfrom
ci/sdk-268-audience-path-filters

Conversation

@ImmutableJeffrey

@ImmutableJeffrey ImmutableJeffrey commented Apr 30, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Doc-only changes (e.g. adding a README.md under src/Packages/Audience/) currently trigger the full Audience CI surface — test-audience-sample-app.yml runs all 12 self-hosted Unity PlayMode cells, and test-audience-sdk.yml runs the .NET unit-test job.
  • Both workflows scope their paths: filter to the entire package and example directories (src/Packages/Audience/**, examples/audience/**), with no carve-out for documentation or repo metadata.
  • This PR replaces those blanket matches with explicit allow-lists of source-affecting roots, so doc-only PRs no longer schedule the matrix.

test-audience-sdk.yml now triggers on:

  • 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

test-audience-sample-app.yml triggers on the same paths, plus:

  • examples/audience/Assets/**
  • examples/audience/Packages/**
  • examples/audience/ProjectSettings/**
  • .github/workflows/test-audience-sample-app.yml

paths and paths-ignore are mutually exclusive in GitHub Actions, and paths-ignore only suppresses a workflow when every changed file matches the ignore list — so a mixed change (markdown + package.json) would still trigger. An explicit allow-list is the only filter shape that handles mixed PRs correctly.

package.json, Directory.Build.props, and link.xml stay in the trigger because version, dependency, build-config, and IL2CPP-stripping changes can each produce regressions the matrix exists to catch.

Linear: SDK-268

@ImmutableJeffrey ImmutableJeffrey requested review from a team as code owners April 30, 2026 05:37

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit f5fbb6b. Configure here.

Comment thread .github/workflows/test-audience-sample-app.yml
@ImmutableJeffrey ImmutableJeffrey changed the title ci(audience-sdk): scope path filters to source-affecting paths only (SDK-268) ci(audience-sdk): stop running Unity tests on docs-only PRs (SDK-268) Apr 30, 2026
…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) <noreply@anthropic.com>
@ImmutableJeffrey ImmutableJeffrey force-pushed the ci/sdk-268-audience-path-filters branch from f5fbb6b to e621a7f Compare April 30, 2026 06:19
@ImmutableJeffrey ImmutableJeffrey merged commit f6faba4 into main Apr 30, 2026
32 checks passed
@ImmutableJeffrey ImmutableJeffrey deleted the ci/sdk-268-audience-path-filters branch April 30, 2026 07:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants