Feature/refactor to es6 #328
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: Tests | |
# This workflow runs standard unit tests to ensure basic integrity and avoid | |
# regressions on pull-requests (and pushes) | |
on: | |
push: | |
branches: | |
- master # allthough master is push protected we still keep it | |
- development | |
pull_request: # runs on all PR | |
branches-ignore: | |
- release-* # on release we run an extended workflow so no need for this | |
jobs: | |
lint: | |
name: Javascript standard lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v3 | |
- name: setup node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- name: cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-16-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- run: npm install | |
- run: npm run lint | |
unittest: | |
name: unit tests | |
runs-on: ubuntu-latest | |
needs: [lint] | |
strategy: | |
matrix: | |
node: [16, 18, 20] | |
steps: | |
- name: Checkout ${{ matrix.node }} | |
uses: actions/checkout@v3 | |
- name: Setup node ${{ matrix.node }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Cache dependencies ${{ matrix.node }} | |
uses: actions/cache@v3 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ matrix.node }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node-${{ matrix.node }} | |
- run: npm i | |
- run: npm run test:coverage | |
# with the following action we enforce PRs to have a high coverage | |
# and ensure, changes are tested well enough so that coverage won't fail | |
- name: check coverage | |
uses: VeryGoodOpenSource/very_good_coverage@v1.2.0 | |
with: | |
path: './coverage/lcov.info' | |
min_coverage: 95 |