MAT-7792: address feedback #1095
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
# This workflow will do the following: | |
# - perform a clean install of node dependencies | |
# - lint the source code for errors | |
# - build the source code | |
# - run tests and capture code coverage | |
# - run end-to-end tests | |
# - upload the code coverage report to Codacy | |
# - upload the code coverage report to Codecov | |
name: Continuous Integration | |
on: | |
push: | |
branches: [main, develop] | |
pull_request: | |
branches: [main, develop] | |
jobs: | |
build: | |
name: Checkout, install, lint, build and test with coverage | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Use Node.js 20.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20.x | |
- name: Cache node modules | |
uses: actions/cache@v4 | |
env: | |
cache-name: cache-node-modules | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ env.cache-name }}- | |
${{ runner.os }}-build- | |
${{ runner.os }}- | |
- name: Install node dependencies | |
run: npm ci | |
- name: Audit dependencies for security vulnerabilities | |
run: npm audit --omit=dev --audit-level=${{ vars.NPM_AUDIT_LEVEL }} | |
- name: Lint the source code | |
run: npm run-script lint | |
- name: Check prettier formatting | |
run: npm run-script check-format | |
- name: Build the source code | |
run: npm run build | |
- name: Execute test coverage | |
run: npm run-script coverage | |
- name: Store the coverage report as an artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage | |
path: coverage/lcov.info | |
upload-codacy-coverage: | |
name: Upload code coverage to Codacy | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download coverage artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: coverage | |
- name: Upload code coverage to Codacy | |
uses: codacy/codacy-coverage-reporter-action@master | |
with: | |
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
coverage-reports: lcov.info | |
upload-codecov-coverage: | |
name: Upload code coverage to Codecov | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Download coverage artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: coverage | |
- name: Upload code coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
file: lcov.info | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} |