-
Notifications
You must be signed in to change notification settings - Fork 139
141 lines (126 loc) · 4.1 KB
/
Copy pathchecks.yml
File metadata and controls
141 lines (126 loc) · 4.1 KB
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
140
141
name: RxPlayer Tests
on:
push:
branches: [stable, dev, legacy-v3]
pull_request:
types: [opened, synchronize, reopened]
env:
NODE_VERSION: "22.x"
jobs:
format_check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
- name: Setup Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Install dependencies
run: |
npm ci
rustup target add wasm32-unknown-unknown
- name: Check formatting
run: |
npm run fmt:prettier:check
npm run fmt:rust:check
lint_and_typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
- name: Install dependencies
run: npm ci
- name: Check typescript types
run: npm run types
- name: Lint files in src
run: npm run lint
- name: Check that unit tests mirror src
run: node scripts/verify_unit_tests_location.mjs
- name: Check unit tests typescript types
run: npm run types:unit_tests
- name: Lint test files
run: npm run lint:tests
- name: Build package for consumer checks
run: npm run build -- --no-wasm --no-typecheck
- name: Check package exports
run: node scripts/check_package_build.mjs
unit_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
- name: Install dependencies
run: npm ci
- name: Run unit tests
run: npm run test:unit
parser_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
- name: Install JavaScript dependencies
run: npm ci
- name: Install WebAssembly build tools
run: ./scripts/install_rust_toolchain.sh --no-confirmation
- name: Run parser tests
run: npm run test:parsers
integration_linux_chrome:
uses: ./.github/workflows/integration_tests_base.yml
with: { os: "ubuntu-latest", browser: "chrome" }
integration_linux_firefox:
uses: ./.github/workflows/integration_tests_base.yml
with: { os: "ubuntu-latest", browser: "firefox" }
# NOTE: Too instable - most of the time it does not run. Commented out for now
# integration_linux_edge:
# uses: ./.github/workflows/integration_tests_base.yml
# with: { os: "ubuntu-latest", browser: "edge" }
integration_windows_chrome:
uses: ./.github/workflows/integration_tests_base.yml
with: { os: "windows-latest", browser: "chrome" }
integration_windows_firefox:
uses: ./.github/workflows/integration_tests_base.yml
with: { os: "windows-latest", browser: "firefox" }
integration_windows_edge:
uses: ./.github/workflows/integration_tests_base.yml
with: { os: "windows-latest", browser: "edge" }
memory_linux:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- name: Linux package installation
run: |
# needed for integration & memory tests codecs support
sudo add-apt-repository multiverse && sudo apt update && sudo apt install -y \
ubuntu-restricted-extras
- name: Install JS dependencies
run: npm ci
- name: Build RxPlayer
run: npm run build
- name: Run memory tests
run: npm run test:memory