-
Notifications
You must be signed in to change notification settings - Fork 3.4k
132 lines (121 loc) · 3.96 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
# Github actions workflow name
name: CI
# Triggers the workflow on push or pull request events
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
jobs:
basic_node_test:
name: 'Basic tests on ubuntu-latest with nodejs v22 (current LTS version)'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node }}
- name: Install npm dependencies
run: npm install
- name: Print put node & npm version
run: node --version && npm --version
- name: Install chromium
run: npx playwright install chromium
- name: Run unit test
run: npm run test
windows_and_macos_test:
name: 'Platform tests on ${{matrix.os}} with nodejs v${{matrix.node}}'
needs: basic_node_test
strategy:
matrix:
# Test all mainstream operating system
os: [macos-latest, windows-latest]
node: [22]
runs-on: ${{ matrix.os }}
steps:
# Pull repo to test machine
- uses: actions/checkout@v2
# Configures the node version used on GitHub-hosted runners
- uses: actions/setup-node@v2
with:
# The Node.js version to configure
node-version: ${{ matrix.node }}
- name: Install npm dependencies
run: npm install
- name: Print put node & npm version
# Output useful info for debugging.
run: node --version && npm --version
- name: Install chromium
run: npx playwright install chromium
- name: Run unit test
run: npm run test
historical_versions_node_test:
name: 'Historical version nodejs v${{matrix.node}} test'
needs: basic_node_test
strategy:
matrix:
os: [ubuntu-latest]
node: [14, 16, 18, 20]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node }}
- name: Install npm dependencies
run: npm install
- name: Print put node & npm version
run: node --version && npm --version
- name: Install chromium
run: npx playwright install chromium
- name: Run unit test
run: npm run test
latest_nodejs_testing_node23:
name: 'Latest nodejs v23 test'
needs: basic_node_test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 23
- name: Install npm dependencies
run: npm install
- name: Print put node & npm version
run: node --version && npm --version
- name: Install chromium
run: npx playwright install chromium
- name: Run unit test
run: npm run test
update-changelog:
if: ${{ github.event_name == 'push' && contains(join(github.event.commits.*.message, ' '), 'Release v') }}
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Check out repository
uses: actions/checkout@v3
with:
# Ensure we can push back to the repo
persist-credentials: true
fetch-depth: 0
- name: Set up Node
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Install Dependencies
run: npm ci
- name: Generate Changelog
run: npm run changelog
- name: Commit and Push Changelog
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
# Check if there are any changes to commit
if [ -n "$(git status --porcelain)" ]; then
git add CHANGELOG.md
git commit -m "chore(release): update CHANGELOG [ci]"
git push origin HEAD:master
else
echo "No changes to commit."
fi