mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
The previous package was outdated, preventing us from updating TS. This one also lints YAML and JSON, and applies many more rules to the test files, explaining all the changes in this PR.
142 lines
3.8 KiB
YAML
142 lines
3.8 KiB
YAML
name: NPM test
|
|
|
|
on:
|
|
workflow_call:
|
|
|
|
jobs:
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4.1.1
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 16.x
|
|
- run: npm ci --ignore-scripts
|
|
- run: npm run lint
|
|
|
|
test-unit:
|
|
# Run unit tests on windows and linux
|
|
runs-on: ${{ matrix.operating-system }}
|
|
strategy:
|
|
matrix:
|
|
operating-system:
|
|
- ubuntu-latest
|
|
- windows-latest
|
|
node-version:
|
|
- '18.0'
|
|
- 18.x
|
|
- '20.0'
|
|
- 20.x
|
|
timeout-minutes: 15
|
|
steps:
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
- name: Ensure line endings are consistent
|
|
run: git config --global core.autocrlf input
|
|
- name: Check out repository
|
|
uses: actions/checkout@v4.1.1
|
|
- name: Install dependencies and run build scripts
|
|
run: npm ci
|
|
- name: Type-check tests
|
|
run: npm run test:ts
|
|
- name: Run unit tests
|
|
run: npm run test:unit
|
|
- name: Submit unit test coverage
|
|
uses: coverallsapp/github-action@master
|
|
with:
|
|
github-token: ${{ secrets.github_token }}
|
|
flag-name: test-unit-${{ matrix.node-version }}-${{ matrix.operating-system }}
|
|
parallel: true
|
|
|
|
test-integration:
|
|
# Run integration tests on linux (full suite, with external dependencies)
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
node-version:
|
|
- 18.x
|
|
- 20.x
|
|
env:
|
|
TEST_DOCKER: true
|
|
services:
|
|
sparql-endpoint:
|
|
image: tenforce/virtuoso
|
|
env:
|
|
SPARQL_UPDATE: true
|
|
ports:
|
|
- 4000:8890
|
|
redis:
|
|
image: redis
|
|
ports:
|
|
- 6379:6379
|
|
timeout-minutes: 20
|
|
steps:
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
- name: Check out repository
|
|
uses: actions/checkout@v4.1.1
|
|
- name: Install dependencies and run build scripts
|
|
run: npm ci
|
|
- name: Run integration tests
|
|
run: npm run test:integration
|
|
|
|
test-integration-windows:
|
|
# Run integration tests on windows (no external dependencies)
|
|
runs-on: windows-latest
|
|
strategy:
|
|
matrix:
|
|
node-version:
|
|
- 18.x
|
|
- 20.x
|
|
timeout-minutes: 20
|
|
steps:
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
- name: Ensure line endings are consistent
|
|
run: git config --global core.autocrlf input
|
|
- name: Check out repository
|
|
uses: actions/checkout@v4.1.1
|
|
- name: Install dependencies and run build scripts
|
|
run: npm ci
|
|
- name: Run integration tests
|
|
run: npm run test:integration
|
|
|
|
test-configs:
|
|
# Test startup of CSS with all configs inside the config/ folder
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
sparql-endpoint:
|
|
image: tenforce/virtuoso
|
|
env:
|
|
SPARQL_UPDATE: true
|
|
ports:
|
|
- 4000:8890
|
|
steps:
|
|
- name: Use Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 16.x
|
|
- name: Check out repository
|
|
uses: actions/checkout@v4.1.1
|
|
- name: Install dependencies and run build scripts
|
|
run: npm ci
|
|
- name: Run deploy tests
|
|
run: npm run test:deploy
|
|
|
|
coveralls:
|
|
# Consolidate test coverage reports from all unit tests
|
|
needs: test-unit
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Consolidate test coverage from different jobs
|
|
uses: coverallsapp/github-action@master
|
|
with:
|
|
github-token: ${{ secrets.github_token }}
|
|
parallel-finished: true
|