10275 calendar generator #14821
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Node.js CI - Client Unit Tests | |
on: | |
pull_request: | |
jobs: | |
Client: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
ci_node_total: [4] | |
ci_node_index: [0, 1, 2, 3] | |
env: | |
CI_NODE_TOTAL: ${{ matrix.ci_node_total }} | |
CI_NODE_INDEX: ${{ matrix.ci_node_index }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20.14.0' | |
- name: Collect Workflow Telemetry | |
uses: runforesight/workflow-telemetry-action@v2 | |
with: | |
comment_on_pr: false | |
- name: Install Node Dependencies | |
run: npm ci | |
- name: Test Client Unit | |
run: | | |
export TESTFILES=$(npx ts-node split-tests-glob.ts -unit) | |
NODE_INDEX=${{ matrix.ci_node_index }} npm run test:client:unit:ci | |
- name: Rename coverage to shard coverage | |
run: | | |
mkdir -p coverage | |
cp web-client/coverage/${{ matrix.ci_node_index }}/lcov.info coverage/lcov-${{ matrix.ci_node_index }}.info | |
cp web-client/coverage/${{ matrix.ci_node_index }}/coverage-final.json coverage/coverage-${{ matrix.ci_node_index }}.json | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-artifacts-${{ matrix.ci_node_index }} | |
path: coverage | |
check-coverage: | |
runs-on: ubuntu-latest | |
needs: [Client] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: coverage-artifacts-* | |
merge-multiple: true | |
path: coverage | |
- name: Process Coverage | |
run: npx nyc report --check-coverage --branches 90 --functions 90 --lines 90 --statements 90 --reporter lcov --reporter text --reporter clover -t coverage | |
- uses: geekyeggo/delete-artifact@v1 | |
with: | |
name: coverage-artifacts | |
failOnError: false |