-
Notifications
You must be signed in to change notification settings - Fork 1
129 lines (106 loc) · 2.71 KB
/
main.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
name: Main
on:
workflow_dispatch:
push:
branches:
- 3.x.x
concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
cache: yarn
- name: Install project dependencies
run: yarn install
- name: Lint
run: yarn lint
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
cache: yarn
- name: Install project dependencies
run: yarn install
- name: Run build script
run: yarn build
test-browser:
name: Test Browsers
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
cache: yarn
- name: Install project dependencies
run: yarn install
- name: Install chromium
run: yarn playwright install
- name: Run tests
run: yarn test:browser --coverage
- name: Upload coverage to codecov
uses: codecov/codecov-action@v3
if: always()
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: coverage/clover.xml
test-node:
name: Test Node
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
cache: yarn
- name: Install project dependencies
run: yarn install
- name: Run tests
run: yarn test:node --coverage
- name: Upload coverage to codecov
uses: codecov/codecov-action@v3
if: always()
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: coverage/clover.xml
release:
name: Release
runs-on: ubuntu-latest
timeout-minutes: 10
needs:
- lint
- build
- test-browser
- test-node
steps:
- name: Checkout the repository
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
cache: yarn
- name: Install project dependencies
run: yarn install
- name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@v1
with:
publish: yarn changeset publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}