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 : ' 16'
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
+
36
+ - name : cache node_modules
37
+ id : node_modules_cache_id
38
+ uses : actions/cache@v2
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 i
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@v2
55
+ with :
56
+ path : package-temp-dir
57
+ key : lock-${{ github.sha }}
58
+
59
+ - name : restore cache from node_modules
60
+ uses : actions/cache@v2
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@v2
78
+ with :
79
+ path : package-temp-dir
80
+ key : lock-${{ github.sha }}
81
+
82
+ - name : restore cache from node_modules
83
+ uses : actions/cache@v2
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@v2
101
+ with :
102
+ path : package-temp-dir
103
+ key : lock-${{ github.sha }}
104
+
105
+ - name : restore cache from node_modules
106
+ uses : actions/cache@v2
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