1010 node-version : ' 22.x'
1111
1212jobs :
13+ install-deps :
14+ strategy :
15+ matrix :
16+ os : [ubuntu-22.04, windows-latest]
17+ runs-on : ${{ matrix.os }}
18+ name : Install Dependencies
19+ steps :
20+ - name : Check out repository
21+ uses : actions/checkout@v4
22+
23+ - name : Set up Node.js
24+ uses : actions/setup-node@v4
25+ with :
26+ node-version : ${{ env.node-version }}
27+ cache : yarn
28+ cache-dependency-path : ' **/yarn.lock'
29+
30+ - name : Install deps
31+ run : yarn install --prefer-offline --frozen-lockfile
32+
33+ - name : Cache node_modules
34+ uses : actions/cache@v4
35+ id : cache-node-modules
36+ with :
37+ path : |
38+ node_modules
39+ packages/*/node_modules
40+ tools/*/node_modules
41+ key : node-modules-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
42+ restore-keys : |
43+ node-modules-${{ runner.os }}-
44+
1345 precheck :
1446 name : Check jobs to run
1547 runs-on : ubuntu-24.04
48+ needs : install-deps
1649 outputs :
1750 affected-typescript-resolver-files : ${{ steps.affected.outputs.typescript-resolver-files }}
1851 affected-typescript-resolver-files-e2e : ${{ steps.affected.outputs.typescript-resolver-files-e2e }}
@@ -28,11 +61,17 @@ jobs:
2861 uses : actions/setup-node@v4
2962 with :
3063 node-version : ${{ env.node-version }}
31- cache : yarn
32- cache-dependency-path : ' **/yarn.lock'
3364
34- - name : Install deps
35- run : yarn install --prefer-offline
65+ - name : Restore node_modules cache
66+ uses : actions/cache@v4
67+ with :
68+ path : |
69+ node_modules
70+ packages/*/node_modules
71+ tools/*/node_modules
72+ key : node-modules-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
73+ restore-keys : |
74+ node-modules-${{ runner.os }}-
3675
3776 - name : Check affected projects
3877 id : affected
@@ -44,21 +83,21 @@ jobs:
4483 cat $GITHUB_OUTPUT
4584
4685 typescript-resolver-files :
47- needs : precheck
86+ needs : [install-deps, precheck]
4887 if : ${{ needs.precheck.outputs.affected-typescript-resolver-files == 'true' }}
49- uses : ./.github/workflows/projects/ typescript-resolver-files.yml
88+ uses : ./.github/workflows/typescript-resolver-files.yml
5089
5190 typescript-resolver-files-e2e :
52- needs : precheck
91+ needs : [install-deps, precheck]
5392 if : ${{ needs.precheck.outputs.affected-typescript-resolver-files == 'true' || needs.precheck.outputs.affected-typescript-resolver-files-e2e == 'true' }}
54- uses : ./.github/workflows/projects/ typescript-resolver-files-e2e.yml
93+ uses : ./.github/workflows/typescript-resolver-files-e2e.yml
5594
5695 operation-location-migration :
57- needs : precheck
96+ needs : [install-deps, precheck]
5897 if : ${{ needs.precheck.outputs.affected-operation-location-migration == 'true' }}
59- uses : ./.github/workflows/projects/ operation-location-migration.yml
98+ uses : ./.github/workflows/operation-location-migration.yml
6099
61100 operation-location-migration-e2e :
62- needs : precheck
101+ needs : [install-deps, precheck]
63102 if : ${{ needs.precheck.outputs.affected-operation-location-migration == 'true' || needs.precheck.outputs.affected-operation-location-migration-e2e == 'true' }}
64- uses : ./.github/workflows/projects/ operation-location-migration-e2e.yml
103+ uses : ./.github/workflows/operation-location-migration-e2e.yml
0 commit comments