Skip to content

Commit 00c2750

Browse files
committed
CI: Reusable command for cloning and installing dependencies
1 parent 08ae214 commit 00c2750

File tree

1 file changed

+30
-6
lines changed

1 file changed

+30
-6
lines changed

.circleci/config.yml

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,34 @@ workflows:
1010
- node-v17
1111

1212
version: 2.1
13+
14+
commands:
15+
install-dependencies:
16+
parameters:
17+
cache-id:
18+
type: string
19+
path:
20+
type: string
21+
default: .
22+
package-manager:
23+
type: string
24+
default: npm
25+
dependency-file:
26+
type: string
27+
default: package.json
28+
steps:
29+
- restore_cache:
30+
key: <<parameters.cache-id>>-dependency-cache-v2-{{ .Environment.CIRCLE_JOB }}-{{ checksum "<<parameters.path>>/<<parameters.dependency-file>>" }}
31+
- run:
32+
name: "<<parameters.package-manager>> install in <<parameters.path>>"
33+
command: |
34+
cd "<<parameters.path>>"
35+
[[ -e node_modules/ ]] || <<parameters.package-manager>> install
36+
- save_cache:
37+
key: <<parameters.cache-id>>-dependency-cache-v2-{{ .Environment.CIRCLE_JOB }}-{{ checksum "<<parameters.path>>/<<parameters.dependency-file>>" }}
38+
paths:
39+
- "<<parameters.path>>/node_modules/"
40+
1341
jobs:
1442
node-base: &node-base
1543
working_directory: ~/solc-js
@@ -24,8 +52,8 @@ jobs:
2452
name: Versions
2553
command: npm version
2654
- checkout
27-
- restore_cache:
28-
key: dependency-cache-{{ .Environment.CIRCLE_JOB }}-{{ checksum "package.json" }}
55+
- install-dependencies:
56+
cache-id: solc-js
2957
- run:
3058
name: install-npm
3159
command: npm install
@@ -41,10 +69,6 @@ jobs:
4169
- run:
4270
name: coveralls
4371
command: npm run coveralls
44-
- save_cache:
45-
key: dependency-cache-{{ .Environment.CIRCLE_JOB }}-{{ checksum "package.json" }}
46-
paths:
47-
- ./node_modules
4872

4973
node-v10:
5074
<<: *node-base

0 commit comments

Comments
 (0)