-
Notifications
You must be signed in to change notification settings - Fork 883
139 lines (116 loc) · 2.78 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
135
136
137
138
139
name: Continuous integration
on:
push:
branches:
- master
pull_request:
jobs:
lint:
name: Lint source files
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v3
with:
cache: yarn
- name: Install dependencies
run: yarn
- name: Lint source files
run: yarn lint
unit-tests:
name: Unit tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v3
with:
cache: yarn
- name: Install dependencies
run: yarn
- name: Build
run: yarn build
- name: Run unit tests
run: yarn test tests/unit
- name: Upload coverage
uses: coverallsapp/github-action@v2
with:
parallel: true
integration-tests:
strategy:
matrix:
node:
- 18
- 20
name: Integration tests on Node ${{ matrix.node }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: yarn
- name: Install dependencies
run: yarn
- name: Build
run: yarn build
- name: Run tests
run: yarn test tests/integration
- name: Upload coverage
uses: coverallsapp/github-action@v2
with:
parallel: true
acceptance-tests:
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
node:
- 18
- 20
name: Acceptance with Node ${{ matrix.node }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: yarn
- name: Install ffmpeg
uses: ConorMacBride/install-package@v1
with:
apt: ffmpeg
brew: ffmpeg
choco: ffmpeg
- name: Install dependencies
run: yarn
- name: Build
run: yarn build
- name: Run tests
run: yarn test tests/acceptance
- name: Upload coverage
uses: coverallsapp/github-action@v2
with:
parallel: true
finish-coverage:
name: Finalize coverage
needs:
- unit-tests
- integration-tests
- acceptance-tests
if: ${{ always() }}
runs-on: ubuntu-latest
steps:
- name: Finalize coverage
uses: coverallsapp/github-action@v2
with:
parallel-finished: true