154 lines
3.9 KiB
YAML
154 lines
3.9 KiB
YAML
name: Unit Tests
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
merge_group:
|
|
|
|
jobs:
|
|
node-tests:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node_version:
|
|
- "14"
|
|
- "16"
|
|
- "18"
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
NPM_CONFIG_UNSAFE_PERM: true
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ matrix.node_version }}
|
|
|
|
- run: npm install -g npm@latest
|
|
if: ${{ matrix.node_version == '18' || matrix.node_version == '20' }}
|
|
|
|
# npm@10.0.0 drops support for Node.js v14 and v16
|
|
- run: npm install -g npm@"<10.0.0"
|
|
if: ${{ matrix.node_version == '14' || matrix.node_version == '16' }}
|
|
|
|
- name: Bootstrap
|
|
run: npm ci
|
|
|
|
- name: Build 🔧
|
|
run: npm run compile
|
|
|
|
- name: Unit tests
|
|
run: |
|
|
# TODO(legendecas): webpack https://stackoverflow.com/questions/69692842/error-message-error0308010cdigital-envelope-routinesunsupported
|
|
if [ "${{ matrix.node_version }}" = "18" ]; then
|
|
export NODE_OPTIONS=--openssl-legacy-provider
|
|
fi
|
|
npm run test
|
|
- name: Report Coverage
|
|
run: npm run codecov
|
|
if: ${{ matrix.node_version == '14' }}
|
|
node-windows-tests:
|
|
runs-on: windows-latest
|
|
env:
|
|
NPM_CONFIG_UNSAFE_PERM: true
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '18'
|
|
|
|
- run: npm install -g npm@latest
|
|
|
|
- name: Bootstrap
|
|
run: npm ci
|
|
|
|
- name: Build 🔧
|
|
run: |
|
|
npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
|
|
npm run compile
|
|
|
|
- name: Unit tests
|
|
env:
|
|
NODE_OPTIONS: --openssl-legacy-provider
|
|
run: npm run test
|
|
browser-tests:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
NPM_CONFIG_UNSAFE_PERM: true
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 16
|
|
|
|
- name: Bootstrap
|
|
run: npm ci
|
|
|
|
- name: Build 🔧
|
|
run: npm run compile
|
|
|
|
- name: Unit tests
|
|
run: npm run test:browser
|
|
- name: Report Coverage
|
|
run: npm run codecov:browser
|
|
webworker-tests:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
NPM_CONFIG_UNSAFE_PERM: true
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4.0.0
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 16
|
|
|
|
- name: Bootstrap
|
|
run: npm ci
|
|
|
|
- name: Build 🔧
|
|
run: npm run compile
|
|
|
|
- name: Unit tests
|
|
run: npm run test:webworker
|
|
- name: Report Coverage
|
|
run: npm run codecov:webworker
|
|
api-eol-node-test:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node_version:
|
|
- "8"
|
|
- "10"
|
|
- "12"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ matrix.node_version }}
|
|
|
|
- name: Build
|
|
working-directory: ./api
|
|
run: |
|
|
npm install --ignore-scripts
|
|
npm install @types/mocha@^7 mocha@^7 ts-loader@^8 ts-mocha@^8
|
|
node ../scripts/version-update.js
|
|
npx tsc --build tsconfig.json tsconfig.esm.json
|
|
|
|
- name: Test
|
|
working-directory: ./api
|
|
# running test:eol as node 8 is not supported anymore by the version of nyc we use, as we don't report coverage
|
|
# for this step we leave it out.
|
|
# Details: nyc requires istanbul-lib-report, which silently dropped support for Node.js v8 when going from
|
|
# 3.0.0 to 3.0.1 by requiring make-dir@^4.0.0 to fix https://github.com/advisories/GHSA-c2qf-rxjj-qqgw.
|
|
# make-dir does not support Node.js v8 anymore.
|
|
run: npm run test:eol
|