-
Notifications
You must be signed in to change notification settings - Fork 0
134 lines (111 loc) · 3.21 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
name: CI
on: [push]
jobs:
linting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- name: Get npm cache directory
id: npm-cache-dir
run: |
echo "::set-output name=dir::$(npm config get cache)"
- uses: actions/[email protected]
id: npm-cache
with:
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- run: npm ci
- run: npm run build
- run: npm run lint
node_tests:
name: Node ${{ matrix.node }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
timeout-minutes: 10
strategy:
fail-fast: true
matrix:
os:
- ubuntu-latest
- windows-latest
node:
- 14
- 16
- 18
- 19
- 20
steps:
- name: Checkout source
uses: actions/checkout@v3
- name: Install Node ${{ matrix.node }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- name: Get npm cache directory
id: npm-cache-dir
run: |
echo "::set-output name=dir::$(npm config get cache)"
- uses: actions/[email protected]
id: npm-cache
with:
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
# Node 14 still ships with npm@6 which doesn't install peerDeps by default.
- name: Install npm@7
if: matrix.node == '14'
run: npm install -g npm@7
- run: npm ci
- run: npm run build
- run: npm run test --ignore-scripts
browser_tests:
name: Browser
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
browser:
- chrome
- firefox
os:
- ubuntu-latest
- windows-latest
steps:
- name: Checkout source
uses: actions/checkout@v3
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: 16
- name: Get npm cache directory
id: npm-cache-dir
run: |
echo "::set-output name=dir::$(npm config get cache)"
- uses: actions/[email protected]
id: npm-cache
with:
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- run: npm ci
- run: npm run build
# Chrome
- uses: browser-actions/setup-chrome@latest
if: matrix.browser == 'chrome'
- name: Run tests on Chrome
if: matrix.browser == 'chrome'
run: |
npm run test:browser -- --browsers=ChromeHeadless
# Firefox
- uses: browser-actions/setup-chrome@latest
if: matrix.browser == 'firefox'
- name: Run tests on Firefox
if: matrix.browser == 'firefox'
run: |
npm run test:browser -- --browsers=FirefoxHeadless