Skip to content

Commit 393f8af

Browse files
committed
CCM-10981: wip
1 parent 1f50fb6 commit 393f8af

File tree

2 files changed

+52
-78
lines changed

2 files changed

+52
-78
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: "Node modules cache + setup"
2+
description: "Setup Node, restore node_modules cache, and optionally run npm ci on cache miss"
3+
inputs:
4+
node_version:
5+
description: "Node.js version"
6+
required: true
7+
cache_lock_path:
8+
description: "Path(s) to package-lock.json for cache key"
9+
required: false
10+
default: "**/package-lock.json"
11+
install_on_miss:
12+
description: "Run npm ci when cache is missing"
13+
required: false
14+
default: "false"
15+
runs:
16+
using: "composite"
17+
steps:
18+
- name: "Use Node.js"
19+
uses: actions/setup-node@v4
20+
with:
21+
node-version: "${{ inputs.node_version }}"
22+
cache: "npm"
23+
cache-dependency-path: "${{ inputs.cache_lock_path }}"
24+
- name: "Restore node_modules from cache"
25+
id: node-modules-cache
26+
uses: actions/cache@v4
27+
with:
28+
path: |
29+
node_modules
30+
**/node_modules
31+
key: ${{ runner.os }}-node-${{ inputs.node_version }}-${{ hashFiles(inputs.cache_lock_path) }}
32+
restore-keys: |
33+
${{ runner.os }}-node-${{ inputs.node_version }}-
34+
- name: "Install dependencies (cache miss)"
35+
if: steps.node-modules-cache.outputs.cache-hit != 'true' && inputs.install_on_miss == 'true'
36+
shell: bash
37+
run: |
38+
npm ci

.github/workflows/stage-2-test.yaml

Lines changed: 14 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -48,26 +48,12 @@ jobs:
4848
steps:
4949
- name: "Checkout code"
5050
uses: actions/[email protected]
51-
- name: "Use Node.js"
52-
uses: actions/setup-node@v4
51+
- name: "Repo setup (cached)"
52+
uses: ./.github/actions/node-modules-cache
5353
with:
54-
node-version: "${{ inputs.nodejs_version }}"
55-
cache: "npm"
56-
cache-dependency-path: "**/package-lock.json"
57-
- name: "Restore node_modules from cache"
58-
id: cache-node-modules
59-
uses: actions/cache@v4
60-
with:
61-
path: |
62-
node_modules
63-
**/node_modules
64-
key: ${{ runner.os }}-node-${{ inputs.nodejs_version }}-${{ hashFiles('**/package-lock.json') }}
65-
restore-keys: |
66-
${{ runner.os }}-node-${{ inputs.nodejs_version }}-
67-
- name: "Install dependencies (cache miss)"
68-
if: steps.cache-node-modules.outputs.cache-hit != 'true'
69-
run: |
70-
npm ci
54+
node_version: "${{ inputs.nodejs_version }}"
55+
cache_lock_path: "**/package-lock.json"
56+
install_on_miss: "true"
7157

7258
check-generated-dependencies:
7359
name: "Check generated dependencies"
@@ -77,21 +63,10 @@ jobs:
7763
steps:
7864
- name: "Checkout code"
7965
uses: actions/[email protected]
80-
- name: "Use Node.js"
81-
uses: actions/setup-node@v4
82-
with:
83-
node-version: "${{ inputs.nodejs_version }}"
84-
cache: "npm"
85-
cache-dependency-path: "**/package-lock.json"
86-
- name: "Restore node_modules from cache"
87-
uses: actions/cache@v4
66+
- name: "Repo setup (cached)"
67+
uses: ./.github/actions/node-modules-cache
8868
with:
89-
path: |
90-
node_modules
91-
**/node_modules
92-
key: ${{ runner.os }}-node-${{ inputs.nodejs_version }}-${{ hashFiles('**/package-lock.json') }}
93-
restore-keys: |
94-
${{ runner.os }}-node-${{ inputs.nodejs_version }}-
69+
node_version: "${{ inputs.nodejs_version }}"
9570
- name: "Generate dependencies"
9671
run: |
9772
npm run generate-dependencies --workspaces --if-present
@@ -105,21 +80,8 @@ jobs:
10580
steps:
10681
- name: "Checkout code"
10782
uses: actions/[email protected]
108-
- name: "Use Node.js"
109-
uses: actions/setup-node@v4
110-
with:
111-
node-version: "${{ inputs.nodejs_version }}"
112-
cache: "npm"
113-
cache-dependency-path: "**/package-lock.json"
114-
- name: "Restore node_modules from cache"
115-
uses: actions/cache@v4
116-
with:
117-
path: |
118-
node_modules
119-
**/node_modules
120-
key: ${{ runner.os }}-node-${{ inputs.nodejs_version }}-${{ hashFiles('**/package-lock.json') }}
121-
restore-keys: |
122-
${{ runner.os }}-node-${{ inputs.nodejs_version }}-
83+
- name: "Repo setup (cached)"
84+
uses: ./.github/actions/node-modules-cache
12385
- name: "Generate dependencies"
12486
run: |
12587
npm run generate-dependencies --workspaces --if-present
@@ -148,21 +110,8 @@ jobs:
148110
steps:
149111
- name: "Checkout code"
150112
uses: actions/[email protected]
151-
- name: "Use Node.js"
152-
uses: actions/setup-node@v4
153-
with:
154-
node-version: "${{ inputs.nodejs_version }}"
155-
cache: "npm"
156-
cache-dependency-path: "**/package-lock.json"
157-
- name: "Restore node_modules from cache"
158-
uses: actions/cache@v4
159-
with:
160-
path: |
161-
node_modules
162-
**/node_modules
163-
key: ${{ runner.os }}-node-${{ inputs.nodejs_version }}-${{ hashFiles('**/package-lock.json') }}
164-
restore-keys: |
165-
${{ runner.os }}-node-${{ inputs.nodejs_version }}-
113+
- name: "Repo setup (cached)"
114+
uses: ./.github/actions/node-modules-cache
166115
- name: "Generate dependencies"
167116
run: |
168117
npm run generate-dependencies --workspaces --if-present
@@ -178,21 +127,8 @@ jobs:
178127
steps:
179128
- name: "Checkout code"
180129
uses: actions/[email protected]
181-
- name: "Use Node.js"
182-
uses: actions/setup-node@v4
183-
with:
184-
node-version: "${{ inputs.nodejs_version }}"
185-
cache: "npm"
186-
cache-dependency-path: "**/package-lock.json"
187-
- name: "Restore node_modules from cache"
188-
uses: actions/cache@v4
189-
with:
190-
path: |
191-
node_modules
192-
**/node_modules
193-
key: ${{ runner.os }}-node-${{ inputs.nodejs_version }}-${{ hashFiles('**/package-lock.json') }}
194-
restore-keys: |
195-
${{ runner.os }}-node-${{ inputs.nodejs_version }}-
130+
- name: "Repo setup (cached)"
131+
uses: ./.github/actions/node-modules-cache
196132
- name: "Generate dependencies"
197133
run: |
198134
npm run generate-dependencies --workspaces --if-present

0 commit comments

Comments
 (0)