-
Notifications
You must be signed in to change notification settings - Fork 31
64 lines (62 loc) · 2.14 KB
/
pull-request-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
name: Pull Request (CI)
on: [ pull_request, workflow_dispatch ]
jobs:
inspect:
name: Code Validation
runs-on: 'ubuntu-latest'
steps:
- name: Checkout ${{ github.repository }} @ ${{ github.ref }}
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: 20.x
- name: Install NPM Packages
id: packages
run: npm install
- name: Code Inspection
if: steps.packages.outcome == 'success' && (success() || failure())
run: npm run check
- name: Unit & Component Tests
if: steps.packages.outcome == 'success' && (success() || failure())
run: npm run test
test:
needs: inspect
if: success() || contains(github.event.pull_request.title, 'Crowdin')
strategy:
fail-fast: false
matrix:
os: [ windows-latest, ubuntu-latest, macos-latest ]
name: System Tests - ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- name: Starting X Virtual Frame Buffer (Port 99)
if: startsWith(matrix.os, 'ubuntu')
run: |
#sudo apt-get update
#sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libgconf-2-4
sudo /usr/bin/Xvfb -ac :99 -screen 0 1920x1080x24 > /dev/null 2>&1 &
disown -ar # remove all running jobs (e.g. xvfb) from the job table of this bash process
- name: Checkout ${{ github.repository }} @ ${{ github.ref }}
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install NodeJS
uses: actions/setup-node@v4
with:
node-version: 20.x
- name: Install NPM Packages
id: packages
run: npm install
- name: End-To-End Tests
if: steps.packages.outcome == 'success' && (success() || failure())
env:
DISPLAY: ':99'
run: npm run test:e2e
- name: Website Tests (Selection)
if: steps.packages.outcome == 'success' && (success() || failure())
env:
DISPLAY: ':99'
run: npm run test:websites -- MangaDex