1+ name : CI
2+
3+ on :
4+ push :
5+ branches : [master]
6+ pull_request :
7+ branches : [master]
8+
9+ jobs :
10+ setup :
11+ runs-on : ubuntu-latest
12+ steps :
13+ - name : checkout
14+ uses : actions/checkout@master
15+
16+ - uses : actions/setup-node@v1
17+ with :
18+ node-version : ' 12'
19+
20+ - name : cache package-lock.json
21+ uses : actions/cache@v2
22+ with :
23+ path : package-temp-dir
24+ key : lock-${{ github.sha }}
25+
26+ - name : create package-lock.json
27+ run : npm i --package-lock-only
28+
29+ - name : hack for singe file
30+ run : |
31+ if [ ! -d "package-temp-dir" ]; then
32+ mkdir package-temp-dir
33+ fi
34+ cp package-lock.json package-temp-dir
35+ - name : cache node_modules
36+ id : node_modules_cache_id
37+ uses : actions/cache@v2
38+ with :
39+ path : node_modules
40+ key : node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }}
41+
42+ - name : install
43+ if : steps.node_modules_cache_id.outputs.cache-hit != 'true'
44+ run : npm ci
45+
46+ lint :
47+ runs-on : ubuntu-latest
48+ steps :
49+ - name : checkout
50+ uses : actions/checkout@master
51+
52+ - name : restore cache from package-lock.json
53+ uses : actions/cache@v2
54+ with :
55+ path : package-temp-dir
56+ key : lock-${{ github.sha }}
57+
58+ - name : restore cache from node_modules
59+ uses : actions/cache@v2
60+ with :
61+ path : node_modules
62+ key : node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }}
63+
64+ - name : lint
65+ run : npm run lint
66+
67+ needs : setup
68+
69+ compile :
70+ runs-on : ubuntu-latest
71+ steps :
72+ - name : checkout
73+ uses : actions/checkout@master
74+
75+ - name : restore cache from package-lock.json
76+ uses : actions/cache@v2
77+ with :
78+ path : package-temp-dir
79+ key : lock-${{ github.sha }}
80+
81+ - name : restore cache from node_modules
82+ uses : actions/cache@v2
83+ with :
84+ path : node_modules
85+ key : node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }}
86+
87+ - name : compile
88+ run : npm run compile
89+
90+ needs : setup
91+
92+ coverage :
93+ runs-on : ubuntu-latest
94+ steps :
95+ - name : checkout
96+ uses : actions/checkout@master
97+
98+ - name : restore cache from package-lock.json
99+ uses : actions/cache@v2
100+ with :
101+ path : package-temp-dir
102+ key : lock-${{ github.sha }}
103+
104+ - name : restore cache from node_modules
105+ uses : actions/cache@v2
106+ with :
107+ path : node_modules
108+ key : node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }}
109+
110+ - name : coverage
111+ run : npm test -- --coverage && bash <(curl -s https://codecov.io/bash)
112+
113+ needs : setup
0 commit comments