diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5d8f940..03d0f00 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,39 +5,43 @@ on: branches: - main +permissions: + contents: read + pull-requests: write + jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: npm ci - run: npm run build eslint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: npm ci - run: npm run lint:eslint lint-types: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: npm ci - run: npm run lint:types lint-docs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: npm ci - run: npm run lint:docs test-node: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: npm ci - run: npm run test:node @@ -45,8 +49,8 @@ jobs: timeout-minutes: 60 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v5 + - uses: actions/setup-node@v6 with: node-version: lts/* - name: Install dependencies @@ -55,3 +59,15 @@ jobs: run: npx playwright install --with-deps - name: Run tests run: npm run test:browser + + test-coverage: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + - run: npm ci + - run: npm run coverage + - name: "Report Coverage" + # Set if: always() to also generate the report if tests are failing + # Only works if you set `reportOnFailure: true` in your vite config as specified above + if: always() + uses: davelosert/vitest-coverage-report-action@v2 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index da3b648..84bf8f6 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -29,10 +29,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v6 with: node-version: 25 cache: "npm" @@ -47,7 +47,7 @@ jobs: uses: actions/configure-pages@v5 - name: Upload artifact - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-pages-artifact@v4 with: # Upload entire repository path: "./docs" diff --git a/README.md b/README.md index 16773b1..0b69ffd 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,9 @@ [![npm](https://img.shields.io/npm/v/cosovo)](https://www.npmjs.com/package/cosovo) [![size](https://img.shields.io/bundlejs/size/cosovo)](https://www.npmjs.com/package/cosovo) [![workflow status](https://github.com/severo/cosovo/actions/workflows/ci.yml/badge.svg)](https://github.com/severo/cosovo/actions) -[![mit license](https://img.shields.io/badge/License-MIT-orange.svg)](https://opensource.org/licenses/MIT) -![coverage](https://img.shields.io/badge/Coverage-100-darkred) -[![dependencies](https://img.shields.io/badge/Dependencies-0-blueviolet)](https://www.npmjs.com/package/cosovo?activeTab=dependencies) +[![mit license](https://img.shields.io/badge/license-MIT-orange.svg)](https://opensource.org/licenses/MIT) +[![coverage](https://img.shields.io/badge/coverage-100%25-brightgreen)](https://github.com/severo/cosovo/actions/workflows/ci.yml) +[![dependencies](https://img.shields.io/badge/dependencies-0-blue)](https://www.npmjs.com/package/cosovo?activeTab=dependencies) Fetch and parse ranges of CSV file. diff --git a/vitest.config.ts b/vitest.config.ts index c54701f..ae9ed97 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -9,6 +9,13 @@ declare module 'vitest' { export default defineConfig({ test: { + coverage: { + // See https://github.com/marketplace/actions/vitest-coverage-report + // you can include other reporters, but 'json-summary' is required, json is recommended + reporter: ['text', 'json-summary', 'json'], + // If you want a coverage reports even if your tests are failing, include the reportOnFailure option + reportOnFailure: true, + }, projects: [ { test: {