Skip to content

test: add coverage for unit tests #82

test: add coverage for unit tests

test: add coverage for unit tests #82

Workflow file for this run

name: CI
on:
push:
branches:
- 'main'
tags-ignore:
- '**' # Ignore tags created by releases
pull_request:
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
permissions:
checks: write
id-token: write # needed for npm publish with provenance
contents: write # needed for github release
pull-requests: write # needed for coverage comment
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup and Install
id: install
uses: ./.github/actions/setup-and-install
- name: Lint
run: pnpm lint
test:
name: Test
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
version: [18, 20, 22]
steps:
- uses: actions/checkout@v4
- name: Setup and Install
id: install
uses: ./.github/actions/setup-and-install
with:
node-version: ${{ matrix.version }}
- name: Build
run: pnpm build
- name: Test
run: pnpm test
coverage:
name: Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup and Install
id: install
uses: ./.github/actions/setup-and-install
with:
node-version: 20
- name: Build
run: pnpm build
- name: Test
run: pnpm test:coverage
- name: Coverage
if: ${{ steps.install.conclusion == 'success' }}
uses: davelosert/vitest-coverage-report-action@v2
with:
vite-config-path: vitest.config.unit.ts
release:
name: Release
runs-on: ubuntu-latest
needs: [lint,test]
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- name: Setup and Install
id: install
uses: ./.github/actions/setup-and-install
- name: Build
run: pnpm build
- name: Publish to NPM
id: publish
uses: JS-DevTools/npm-publish@v3
with:
token: ${{ secrets.NPM_TOKEN }}
dry-run: false
provenance: true
- name: Post publish
if: steps.publish.outputs.type != ''
run: |
echo "Published ${{ steps.publish.outputs.type }} version: ${{ steps.publish.outputs.version }}"
- name: Publish skipped
if: steps.publish.outputs.type == ''
run: |
echo "Version in package.json has not changed. Skipping."
exit 0
- name: Create Release
if: steps.publish.outputs.type != ''
id: release
uses: ncipollo/release-action@v1 # https://github.com/ncipollo/release-action
with:
allowUpdates: true
generateReleaseNotes: true
commit: ${{ github.sha }}
draft: false
name: v${{ steps.publish.outputs.version }}
tag: v${{ steps.publish.outputs.version }}