63 lines
2.1 KiB
YAML
63 lines
2.1 KiB
YAML
# This workflow will do a clean installation of node dependencies, cache/restore them, run backend tests across different versions of node (here 22.x)
|
|
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs
|
|
|
|
name: Backend Testing
|
|
|
|
# Workflow runs when:
|
|
# - a backend js/ts file on "dev" changes
|
|
# - a non-draft PR to "dev" with backend js/ts files is opened, is reopened, or changes
|
|
# - a draft PR to "dev" with backend js/ts files is marked as ready for review
|
|
on:
|
|
push:
|
|
branches: [ "dev" ]
|
|
paths:
|
|
- 'backend/src/**.[jt]s'
|
|
- 'backend/tests/**.[jt]s'
|
|
- 'backend/vitest.config.ts'
|
|
pull_request:
|
|
branches: [ "dev" ]
|
|
types: ["synchronize", "ready_for_review", "opened", "reopened"]
|
|
paths:
|
|
- 'backend/src/**.[jt]s'
|
|
- 'backend/tests/**.[jt]s'
|
|
- 'backend/vitest.config.ts'
|
|
|
|
|
|
jobs:
|
|
test:
|
|
name: Run backend unit tests
|
|
if: '! github.event.pull_request.draft'
|
|
runs-on: [self-hosted, Linux, X64]
|
|
|
|
permissions:
|
|
# Required to checkout the code
|
|
contents: read
|
|
# Required to put a comment into the pull-request
|
|
pull-requests: write
|
|
|
|
strategy:
|
|
matrix:
|
|
node-version: [22.x]
|
|
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: 'npm'
|
|
- run: npm ci
|
|
- run: npm run build
|
|
- run: npm run test:coverage -w backend
|
|
- name: 'Report Backend Coverage'
|
|
# Set if: always() to also generate the report if tests are failing
|
|
# Only works if you set `reportOnFailure: true` in your vite config as specified above
|
|
if: always()
|
|
uses: davelosert/vitest-coverage-report-action@v2
|
|
with:
|
|
name: 'Backend'
|
|
json-summary-path: './backend/coverage/coverage-summary.json'
|
|
json-final-path: './backend/coverage/coverage-final.json'
|
|
vite-config-path: './backend/vitest.config.ts'
|
|
file-coverage-mode: all
|