Skip to content

lint

lint #105

Workflow file for this run

name: Tests
on: [push, pull_request]
env:
CI: true
jobs:
run:
name: Node ${{ matrix.node }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
node: [18.x, 20.x]
os: [ubuntu-latest, windows-latest]
steps:
- name: Clone repository
uses: actions/checkout@v2
- name: Install system dependencies (Linux)
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo apt update
sudo apt install -y libcairo2-dev libjpeg-dev libpango1.0-dev libgif-dev librsvg2-dev
- name: Install system dependencies (Windows)
if: startsWith(matrix.os, 'windows')
run: |
Invoke-WebRequest "https://ftp-osl.osuosl.org/pub/gnome/binaries/win64/gtk+/2.22/gtk+-bundle_2.22.1-20101229_win64.zip" -OutFile "gtk.zip"
Expand-Archive gtk.zip -DestinationPath "C:\GTK"
Invoke-WebRequest "https://downloads.sourceforge.net/project/libjpeg-turbo/2.0.4/libjpeg-turbo-2.0.4-vc64.exe" -OutFile "libjpeg.exe" -UserAgent NativeHost
.\libjpeg.exe /S
- name: Set up Node.js
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node }}
- name: Set up npm cache
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-v${{ matrix.node }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}
restore-keys: |
${{ runner.OS }}-node-v${{ matrix.node }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}
${{ runner.OS }}-node-v${{ matrix.node }}-
- name: Install npm dependencies
run: npm ci
- name: Run tests
run: npm run lint && npm run test:cov
- name: Run Coveralls
uses: coverallsapp/github-action@master
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.node, '18')
with:
github-token: '${{ secrets.GITHUB_TOKEN }}'
- name: 'BrowserStack Env Setup'
uses: browserstack/github-actions/setup-env@master
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.node, '18')
with:
username: ${{ secrets.BROWSERSTACK_USERNAME }}
access-key: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
- name: 'BrowserStack Local Tunnel Setup'
uses: browserstack/github-actions/setup-local@master
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.node, '18')
with:
local-testing: start
local-identifier: random
- name: 'Running test on BrowserStack'
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.node, '18')
run: npx browserstack-runner
- name: 'BrowserStackLocal Stop'
uses: browserstack/github-actions/setup-local@master
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.node, '18')
with:
local-testing: stop