55 PYTHONUTF8 : 1
66
77on :
8- push :
9- branches : [main]
108 pull_request :
119 workflow_dispatch :
1210 merge_group :
@@ -15,8 +13,42 @@ permissions:
1513 contents : read
1614
1715jobs :
16+ changes :
17+ name : " Detect Changes"
18+ runs-on : ubuntu-latest
19+ # Always run on workflow_dispatch and merge_group
20+ if : github.event_name == 'workflow_dispatch' || github.event_name == 'merge_group' || github.event_name == 'pull_request'
21+ outputs :
22+ nodejs : ${{ steps.filter.outputs.nodejs }}
23+ go : ${{ steps.filter.outputs.go }}
24+ python : ${{ steps.filter.outputs.python }}
25+ dotnet : ${{ steps.filter.outputs.dotnet }}
26+ steps :
27+ - uses : actions/checkout@v6.0.2
28+ - uses : dorny/paths-filter@v3
29+ id : filter
30+ with :
31+ filters : |
32+ nodejs:
33+ - 'nodejs/**'
34+ - 'test/**'
35+ go:
36+ - 'go/**'
37+ - 'test/**'
38+ - 'nodejs/package.json'
39+ python:
40+ - 'python/**'
41+ - 'test/**'
42+ - 'nodejs/package.json'
43+ dotnet:
44+ - 'dotnet/**'
45+ - 'test/**'
46+ - 'nodejs/package.json'
1847 nodejs-sdk :
1948 name : " Node.js SDK Tests"
49+ needs : changes
50+ # Run if nodejs files changed, or on workflow_dispatch/merge_group
51+ if : needs.changes.outputs.nodejs == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'merge_group'
2052 strategy :
2153 fail-fast : false
2254 matrix :
6395
6496 go-sdk :
6597 name : " Go SDK Tests"
98+ needs : changes
99+ # Run if go files changed, or on workflow_dispatch/merge_group
100+ if : needs.changes.outputs.go == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'merge_group'
66101 strategy :
67102 fail-fast : false
68103 matrix :
@@ -115,6 +150,9 @@ jobs:
115150
116151 python-sdk :
117152 name : " Python SDK Tests"
153+ needs : changes
154+ # Run if python files changed, or on workflow_dispatch/merge_group
155+ if : needs.changes.outputs.python == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'merge_group'
118156 strategy :
119157 fail-fast : false
120158 matrix :
@@ -164,6 +202,9 @@ jobs:
164202
165203 dotnet-sdk :
166204 name : " .NET SDK Tests"
205+ needs : changes
206+ # Run if dotnet files changed, or on workflow_dispatch/merge_group
207+ if : needs.changes.outputs.dotnet == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'merge_group'
167208 strategy :
168209 fail-fast : false
169210 matrix :
0 commit comments