59 lines
1.8 KiB
YAML
59 lines
1.8 KiB
YAML
name: Coverage Testing
|
|
|
|
on: [workflow_dispatch, push, pull_request]
|
|
|
|
permissions: read-all
|
|
|
|
jobs:
|
|
Coverage:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node: [ 18, 20, 22, 23 ]
|
|
env:
|
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
|
DEEPSOURCE_DSN: ${{ secrets.DEEPSOURCE_DSN }}
|
|
name: Node ${{ matrix.node }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Setup Node
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ matrix.node }}
|
|
|
|
- name: Install Application
|
|
run: |
|
|
npm ci
|
|
npm install -g mocha c8 cypress@14
|
|
|
|
- name: Copy Test Config
|
|
run: cp ./data/config.testing.js ./data/config.js
|
|
|
|
- name: Test Application Startup
|
|
run: npm run test:startup
|
|
|
|
- name: Verify Cypress
|
|
run: cypress verify
|
|
env:
|
|
CYPRESS_VERIFY_TIMEOUT: 600000
|
|
|
|
- name: Run Coverage Testing
|
|
run: c8 --reporter=lcov --reporter=text --reporter=text-summary mocha --timeout 10000 --exit
|
|
|
|
- name: Codecov
|
|
if: ${{ github.event_name != 'pull_request' && env.CODECOV_TOKEN != '' && matrix.node == 22 }}
|
|
run: |
|
|
curl -Os https://uploader.codecov.io/latest/linux/codecov
|
|
chmod +x codecov
|
|
./codecov -t ${CODECOV_TOKEN}
|
|
|
|
- name: DeepSource
|
|
if: ${{ github.event_name != 'pull_request' && env.DEEPSOURCE_DSN != '' && matrix.node == 22 }}
|
|
run: |
|
|
# Install deepsource CLI
|
|
curl https://deepsource.io/cli | sh
|
|
|
|
# From the root directory, run the report coverage command
|
|
./bin/deepsource report --analyzer test-coverage --key javascript --value-file ./coverage/lcov.info |