Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ name: Coverage
on:
push:
branches: [main]
paths: ['packages/chart/**', 'package.json', 'package-lock.json', '.github/workflows/coverage.yml']
paths: ['packages/chart/**', 'package.json', 'package-lock.json', 'bun.lock', 'bunfig.toml', '.github/workflows/coverage.yml']
workflow_dispatch:

permissions:
Expand All @@ -16,6 +16,7 @@ concurrency:

jobs:
coverage:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
runs-on: [self-hosted, macOS, ARM64]
timeout-minutes: 20

Expand All @@ -26,17 +27,20 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
# Minis persist ~/.npm on disk. GitHub's remote cache is 0.4–1 MB/s for ~1.4 GB.
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: '24'
package-manager-cache: false

- run: npm ci
# Bun's download cache stays on disk on the minis; no remote cache.
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: '1.4.2'
- run: bun install --frozen-lockfile

- name: Generate coverage report
run: |
npm run coverage:lcov
bun run coverage:lcov
test -s packages/chart/coverage/lcov.info

- name: Upload coverage reports to Codecov
Expand Down
21 changes: 12 additions & 9 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ name: Documentation
on:
push:
branches: [main]
paths: ['apps/**', 'packages/**', 'vendor/**', '.npmrc', 'package.json', 'package-lock.json', '.github/workflows/docs.yml']
paths: ['apps/**', 'packages/**', 'vendor/**', '.npmrc', 'package.json', 'package-lock.json', 'bun.lock', 'bunfig.toml', '.github/workflows/docs.yml']
pull_request:
paths: ['apps/**', 'packages/**', 'vendor/**', '.npmrc', 'package.json', 'package-lock.json', '.github/workflows/docs.yml']
paths: ['apps/**', 'packages/**', 'vendor/**', '.npmrc', 'package.json', 'package-lock.json', 'bun.lock', 'bunfig.toml', '.github/workflows/docs.yml']
workflow_dispatch:

permissions:
Expand Down Expand Up @@ -47,20 +47,23 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
# Minis persist ~/.npm on disk. GitHub's remote cache is 0.4–1 MB/s for ~1.4 GB.
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: '24'
package-manager-cache: false
- run: npm ci
# Bun's download cache stays on disk on the minis; no remote cache.
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: '1.4.2'
- run: bun install --frozen-lockfile
# Hermetic Chrome for Testing into $PLAYWRIGHT_BROWSERS_PATH. `install chrome`
# is the system Google Chrome channel and needs sudo on macOS.
- name: Install Playwright Chrome for Testing
run: npx playwright-core install chrome-for-testing --no-shell
- run: npm run docs:build
- run: npm run docs:check
- run: npm run lint
- run: npm run docs:test
run: bunx playwright-core install chrome-for-testing --no-shell
- run: bun run docs:build
- run: bun run docs:check
- run: bun run lint
- run: bun run docs:test
# Deploy only runs on main; skip the Pages artifact on PRs after validating the export.
- name: Check GNU tar
if: github.event_name != 'pull_request'
Expand Down
11 changes: 7 additions & 4 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
- '!.github/ISSUE_TEMPLATE/**'
- '!.github/pull_request_template.md'
- '!CODEOWNERS'
# npm ci runs fumadocs-mdx postinstall, so docs content is a build input.
# bun install runs fumadocs-mdx postinstall, so docs content is a build input.
docs_markdown:
- 'apps/docs/content/docs/**/*.md'

Expand All @@ -58,18 +58,21 @@ jobs:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
# Minis persist ~/.npm on disk. GitHub's remote cache is 0.4–1 MB/s for ~1.4 GB.
- uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: '24'
package-manager-cache: false

- run: npm ci
# Bun's download cache stays on disk on the minis; no remote cache.
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version: '1.4.2'
- run: bun install --frozen-lockfile

# Builds icons, WASM and TypeScript, compiles the tests, runs the suite, and fails if any
# file drops below 100% line/branch/function coverage.
- name: Tests and coverage gate
run: npm run coverage
run: bun run coverage

# Tests import dist/ directly, so check the published entry points separately: every
# "exports" subpath must import by package name in plain Node.
Expand Down
Loading