Skip to content

Commit

Permalink
ci: add test coverage indicator
Browse files Browse the repository at this point in the history
ci: split test and coverage workflows
  • Loading branch information
Rohan Bansal committed Feb 24, 2025
1 parent e984604 commit bef657a
Show file tree
Hide file tree
Showing 5 changed files with 132 additions and 16 deletions.
120 changes: 120 additions & 0 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
name: Coverage

on: [pull_request]

jobs:
changes:
name: Check for changes
runs-on: ubuntu-latest

permissions:
pull-requests: read

outputs:
packages: ${{ steps.filter.outputs.changes }}

steps:
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
aform: aform/**
atable: atable/**
beam: beam/**
coverage:
name: ${{ matrix.package }} (${{ matrix.branch }})
needs: changes
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
package: ${{ fromJSON(needs.changes.outputs.packages) }}
branch:
- ${{ github.event.pull_request.base.ref }}
- ${{ github.event.pull_request.head.ref }}
include:
- branch: ${{ github.event.pull_request.base.ref }}
artifact: development
- branch: ${{ github.event.pull_request.head.ref }}
artifact: pull-request

permissions:
contents: read

steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ matrix.branch }}

- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 20
cache-dependency-path: '**/config/rush/pnpm-lock.yaml'
registry-url: https://registry.npmjs.org/

- name: Rush Install
run: node common/scripts/install-run-rush.js install

- name: Rush Build
run: node common/scripts/install-run-rush.js rebuild --verbose

- name: Run Tests
working-directory: ./${{ matrix.package }}
run: node ../common/scripts/install-run-rushx.js test:coverage

- name: Upload Coverage
if: always() # upload the coverage report even if tests are failing
uses: actions/upload-artifact@v4
with:
name: coverage-${{ matrix.package }}-${{ matrix.artifact }}
path: ./${{ matrix.package }}/coverage

report:
name: ${{ matrix.package }} report
needs: [changes, coverage]
runs-on: ubuntu-latest
if: always() # run the coverage report even if tests are failing

strategy:
matrix:
package: ${{ fromJSON(needs.changes.outputs.packages) }}

steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}

- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 20
cache-dependency-path: '**/config/rush/pnpm-lock.yaml'
registry-url: https://registry.npmjs.org/

- name: Rush Install
run: node common/scripts/install-run-rush.js install

- name: Download PR Branch Coverage
uses: actions/download-artifact@v4
with:
name: coverage-${{ matrix.package }}-pull-request
path: ${{ matrix.package }}/coverage

- name: Download Base Branch Coverage
uses: actions/download-artifact@v4
with:
name: coverage-${{ matrix.package }}-development
path: ${{ matrix.package }}/coverage-base

- name: Report Coverage
uses: davelosert/vitest-coverage-report-action@v2
with:
working-directory: ${{ matrix.package }}
file-coverage-mode: 'all'
vite-config-path: 'vite.config.ts'
json-summary-compare-path: coverage-base/coverage-summary.json
19 changes: 6 additions & 13 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
name: Tests

on:
push:
branches: [development]
pull_request:
on: [pull_request]

jobs:
changes:
Expand Down Expand Up @@ -31,9 +28,13 @@ jobs:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
package: ${{ fromJSON(needs.changes.outputs.packages) }}

permissions:
contents: read

steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -53,12 +54,4 @@ jobs:

- name: Run Tests
working-directory: ./${{ matrix.package }}
run: node ../common/scripts/install-run-rushx.js test:coverage

- name: Coverage Report
if: always() # generate the coverage report even if tests are failing
uses: davelosert/vitest-coverage-report-action@v2
with:
working-directory: ./${{ matrix.package }}
file-coverage-mode: 'all'
vite-config-path: './vite.config.ts'
run: node ../common/scripts/install-run-rushx.js test
3 changes: 2 additions & 1 deletion aform/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@
"docs": "api-documenter markdown -i temp -o ../docs/aform",
"lint": "eslint . --ext .ts,.vue",
"preview": "vite preview",
"test": "vitest",
"test": "vitest run --coverage.enabled false",
"test:watch": "vitest watch",
"test:coverage": "vitest run --coverage",
"test:ui": "vitest --ui"
},
Expand Down
3 changes: 2 additions & 1 deletion atable/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@
"docs": "api-documenter markdown -i temp -o ../docs/atable",
"lint": "eslint . --ext .ts,.vue",
"preview": "vite preview",
"test": "vitest",
"test": "vitest run --coverage.enabled false",
"test:watch": "vitest watch",
"test:coverage": "vitest run --coverage",
"test:ui": "vitest --ui"
},
Expand Down
3 changes: 2 additions & 1 deletion beam/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@
"docs": "api-documenter markdown -i temp -o ../docs/beam",
"lint": "eslint . --ext .ts,.vue",
"preview": "vite preview",
"test": "vitest",
"test": "vitest run --coverage.enabled false",
"test:watch": "vitest watch",
"test:coverage": "vitest run --coverage",
"test:ui": "vitest --ui"
},
Expand Down

0 comments on commit bef657a

Please sign in to comment.