Skip to content

Commit aa9632f

Browse files
committed
Make github action workflows conditional
1 parent e680c3e commit aa9632f

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

.github/workflows/pull-request.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,46 @@ on:
55
- master
66

77
jobs:
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

Comments
 (0)