Skip to content

[github-workflow] update pull-request deployment #240

[github-workflow] update pull-request deployment

[github-workflow] update pull-request deployment #240

Workflow file for this run

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: 22.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: 22.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