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@v1
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+
36+ - name : cache node_modules
37+ id : node_modules_cache_id
38+ uses : actions/cache@v1
39+ with :
40+ path : node_modules
41+ key : node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }}
42+
43+ - name : install
44+ if : steps.node_modules_cache_id.outputs.cache-hit != 'true'
45+ run : npm ci
46+
47+ lint :
48+ runs-on : ubuntu-latest
49+ steps :
50+ - name : checkout
51+ uses : actions/checkout@master
52+
53+ - name : restore cache from package-lock.json
54+ uses : actions/cache@v1
55+ with :
56+ path : package-temp-dir
57+ key : lock-${{ github.sha }}
58+
59+ - name : restore cache from node_modules
60+ uses : actions/cache@v1
61+ with :
62+ path : node_modules
63+ key : node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }}
64+
65+ - name : lint
66+ run : npm run lint
67+
68+ needs : setup
69+
70+ compile :
71+ runs-on : ubuntu-latest
72+ steps :
73+ - name : checkout
74+ uses : actions/checkout@master
75+
76+ - name : restore cache from package-lock.json
77+ uses : actions/cache@v1
78+ with :
79+ path : package-temp-dir
80+ key : lock-${{ github.sha }}
81+
82+ - name : restore cache from node_modules
83+ uses : actions/cache@v1
84+ with :
85+ path : node_modules
86+ key : node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }}
87+
88+ - name : compile
89+ run : npm run compile
90+
91+ needs : setup
92+
93+ coverage :
94+ runs-on : ubuntu-latest
95+ steps :
96+ - name : checkout
97+ uses : actions/checkout@master
98+
99+ - name : restore cache from package-lock.json
100+ uses : actions/cache@v1
101+ with :
102+ path : package-temp-dir
103+ key : lock-${{ github.sha }}
104+
105+ - name : restore cache from node_modules
106+ uses : actions/cache@v1
107+ with :
108+ path : node_modules
109+ key : node_modules-${{ hashFiles('**/package-temp-dir/package-lock.json') }}
110+
111+ - name : coverage
112+ run : npm run coverage && bash <(curl -s https://codecov.io/bash)
113+
114+ needs : setup
0 commit comments