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