mirror of
https://github.com/Xevion/rdap.git
synced 2025-12-05 21:15:57 -06:00
ci: enhanced CI/CD and test coverage
- Update version from 0.2.0 to 0.9.0 - Upgrade Vitest from v3 to v4 for improved testing capabilities - Add @vitest/coverage-v8 for comprehensive code coverage reporting - Enhance GitHub Actions CI workflow with separate unit and integration test runs - Integrate Codecov v5 for coverage reporting and test results tracking - Add JUnit reporter for better test result analysis - Configure @codecov/vite-plugin for automated coverage collection
This commit is contained in:
26
.github/workflows/ci.yml
vendored
26
.github/workflows/ci.yml
vendored
@@ -71,20 +71,30 @@ jobs:
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
- name: Run unit tests
|
||||
run: pnpm test:run
|
||||
run: pnpm test:run:coverage
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
- name: Run integration tests
|
||||
run: pnpm test:integration
|
||||
run: pnpm test:integration:coverage
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
- name: Upload coverage
|
||||
uses: codecov/codecov-action@v4
|
||||
- name: Run tests with junit reporter
|
||||
run: pnpm vitest run --reporter=junit --outputFile=test-report.junit.xml
|
||||
if: always()
|
||||
|
||||
- name: Upload coverage reports to Codecov
|
||||
uses: codecov/codecov-action@v5
|
||||
if: always()
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
files: ./coverage/coverage-final.json
|
||||
flags: unittests
|
||||
name: codecov-umbrella
|
||||
fail_ci_if_error: false
|
||||
|
||||
- name: Upload test results to Codecov
|
||||
if: ${{ !cancelled() }}
|
||||
uses: codecov/test-results-action@v1
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
# Build verification
|
||||
build:
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
[![Next.js][badge-nextjs]][nextjs]
|
||||
[![React][badge-react]][react]
|
||||
|
||||
[badge-version]: https://img.shields.io/badge/version-0.2.0-blue
|
||||
[badge-version]: https://img.shields.io/badge/version-0.9.0-blue
|
||||
[badge-license]: https://img.shields.io/badge/license-MIT-green
|
||||
[badge-ci]: https://github.com/Xevion/rdap/actions/workflows/ci.yml/badge.svg
|
||||
[badge-codecov]: https://codecov.io/gh/Xevion/rdap/branch/master/graph/badge.svg
|
||||
|
||||
14
package.json
14
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "rdap",
|
||||
"version": "0.2.0",
|
||||
"version": "0.9.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "next build",
|
||||
@@ -13,8 +13,12 @@
|
||||
"test": "vitest",
|
||||
"test:ui": "vitest --ui",
|
||||
"test:run": "vitest run --exclude '**/*.integration.test.{ts,tsx}'",
|
||||
"test:integration": "vitest run src/rdap.integration.test.ts",
|
||||
"test:run:coverage": "vitest run --coverage --exclude '**/*.integration.test.{ts,tsx}'",
|
||||
"test:integration": "vitest run src/__tests__/rdap-integration.test.ts",
|
||||
"test:integration:coverage": "vitest run --coverage src/__tests__/rdap-integration.test.ts",
|
||||
"test:all": "vitest run",
|
||||
"test:coverage": "vitest run --coverage",
|
||||
"test:all:coverage": "vitest run --coverage",
|
||||
"type-check": "tsc --noEmit",
|
||||
"prepare": "husky install"
|
||||
},
|
||||
@@ -40,6 +44,7 @@
|
||||
"zod": "^4.1.12"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@codecov/vite-plugin": "^1.9.1",
|
||||
"@commitlint/cli": "^19.0.0",
|
||||
"@commitlint/config-conventional": "^19.0.0",
|
||||
"@tailwindcss/postcss": "^4.1.15",
|
||||
@@ -50,7 +55,8 @@
|
||||
"@types/react-dom": "^19.2.2",
|
||||
"@typescript-eslint/eslint-plugin": "^8.46.2",
|
||||
"@typescript-eslint/parser": "^8.46.2",
|
||||
"@vitest/ui": "^3.2.4",
|
||||
"@vitest/coverage-v8": "^4.0.1",
|
||||
"@vitest/ui": "^4.0.1",
|
||||
"eslint": "^9.38.0",
|
||||
"eslint-config-next": "15.5.6",
|
||||
"happy-dom": "^20.0.8",
|
||||
@@ -61,7 +67,7 @@
|
||||
"prettier-plugin-tailwindcss": "^0.7.1",
|
||||
"tailwindcss": "^4.1.15",
|
||||
"typescript": "^5.9.3",
|
||||
"vitest": "^3.2.4"
|
||||
"vitest": "^4.0.1"
|
||||
},
|
||||
"ct3aMetadata": {
|
||||
"initVersion": "7.2.0"
|
||||
|
||||
603
pnpm-lock.yaml
generated
603
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,32 @@
|
||||
import { defineConfig } from "vitest/config";
|
||||
import { codecovVitePlugin } from "@codecov/vite-plugin";
|
||||
import path from "path";
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
codecovVitePlugin({
|
||||
enableBundleAnalysis: process.env.CODECOV_TOKEN !== undefined,
|
||||
bundleName: "rdap",
|
||||
uploadToken: process.env.CODECOV_TOKEN,
|
||||
}),
|
||||
],
|
||||
test: {
|
||||
globals: true,
|
||||
environment: "happy-dom",
|
||||
setupFiles: ["./src/test/setup.ts"],
|
||||
coverage: {
|
||||
provider: "v8",
|
||||
reporter: ["text", "json", "html", "lcov"],
|
||||
exclude: [
|
||||
"**/*.config.*",
|
||||
"**/dist/**",
|
||||
"**/node_modules/**",
|
||||
"**/.next/**",
|
||||
"**/test/**",
|
||||
"**/*.test.{ts,tsx}",
|
||||
"**/src/env/**",
|
||||
],
|
||||
},
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
|
||||
Reference in New Issue
Block a user