55 - master
66
77jobs :
8+ paths-filter :
9+ name : Determine which files are changed
10+ runs-on : ubuntu-latest
11+ steps :
12+ - name : Check out source code
13+ uses : actions/checkout@v4
14+ with :
15+ submodules : recursive
16+
17+ - name : Filter paths
18+ uses : dorny/paths-filter@v3
19+ id : filter
20+ with :
21+ filters : |
22+ devserver:
23+ - 'devserver/**'
24+ libraries:
25+ - 'lib/**'
26+ modules:
27+ - src/{bundles,tabs}/**
28+
29+ - if : steps.filter.outputs.devserver == 'true'
30+ run : echo "Changes detected in devserver"
31+
32+ - if : steps.filter.outputs.libraries == 'true'
33+ run : echo "Changes detected in libraries"
34+
35+ - if : steps.filter.outputs.modules == 'true'
36+ run : echo "Changes detected in modules"
37+ outputs :
38+ devserver : ${{ steps.filter.outputs.devserver }}
39+ modules : ${{ steps.filter.outputs.modules }}
40+ libraries : ${{ steps.filter.outputs.libraries }}
41+
842 test :
943 name : Verify all tests pass and build success
1044 runs-on : ubuntu-latest
45+
46+ # execute after the paths-filter job is done
47+ needs : paths-filter
1148 steps :
1249 - name : Check out source code
1350 uses : actions/checkout@v4
@@ -27,28 +64,37 @@ jobs:
2764 run : yarn install --immutable
2865
2966 - name : Run tsc for libraries
67+ if : needs.paths-filter.outputs.libraries == 'true'
3068 run : yarn workspaces foreach -ptW --from "./lib/*" run tsc
3169
3270 - name : Run lint for libraries
71+ if : needs.paths-filter.outputs.libraries == 'true'
3372 run : yarn eslint lib
3473
3574 - name : Run test for libraries
75+ if : needs.paths-filter.outputs.libraries == 'true'
3676 run : yarn test:libs
3777
3878 - name : Build, lint and run tsc for bundles and tabs
79+ if : needs.paths-filter.outputs.modules == 'true'
3980 run : yarn workspaces foreach -ptW --from "./src/{bundles,tsc}/*" run build --tsc --lint
4081
4182 - name : Lint bundles and tabs
83+ if : needs.paths-filter.outputs.modules == 'true'
4284 run : yarn lint:modules
4385
4486 - name : Test bundles and tabs
87+ if : needs.paths-filter.outputs.modules == 'true'
4588 run : yarn test:modules
4689
4790 - name : Run tsc for Dev Server
91+ if : needs.paths-filter.outputs.devserver == 'true'
4892 run : yarn tsc:devserver
4993
5094 - name : Run Lint for Dev Server
95+ if : needs.paths-filter.outputs.devserver == 'true'
5196 run : yarn eslint devserver
5297
5398 - name : Test Dev Server
99+ if : needs.paths-filter.outputs.devserver == 'true'
54100 run : yarn test:devserver
0 commit comments