Skip to content

docs(packages): add consistent badges to package READMEs #46

docs(packages): add consistent badges to package READMEs

docs(packages): add consistent badges to package READMEs #46

Workflow file for this run

name: CI
on:
pull_request:
types:
- opened
- synchronize
- reopened
- ready_for_review
push:
branches:
- main
merge_group:
workflow_dispatch:
concurrency:
group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
contents: read
env:
PNPM_VERSION: "10.29.3"
TURBO_TELEMETRY_DISABLED: "1"
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: "22"
cache: pnpm
- name: Restore Turbo cache
uses: actions/cache@v5
with:
path: .turbo
key: ${{ runner.os }}-node-22-turbo-${{ hashFiles('pnpm-lock.yaml', 'turbo.json') }}
restore-keys: |
${{ runner.os }}-node-22-turbo-
- name: Install
run: pnpm install --frozen-lockfile
- name: Lint
run: pnpm lint
typecheck:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version:
- "22"
- "24"
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
- name: Restore Turbo cache
uses: actions/cache@v5
with:
path: .turbo
key: ${{ runner.os }}-node-${{ matrix.node-version }}-turbo-${{ hashFiles('pnpm-lock.yaml', 'turbo.json') }}
restore-keys: |
${{ runner.os }}-node-${{ matrix.node-version }}-turbo-
- name: Install
run: pnpm install --frozen-lockfile
- name: Typecheck
run: pnpm typecheck
unit:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version:
- "22"
- "24"
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
- name: Restore Turbo cache
uses: actions/cache@v5
with:
path: .turbo
key: ${{ runner.os }}-node-${{ matrix.node-version }}-turbo-${{ hashFiles('pnpm-lock.yaml', 'turbo.json') }}
restore-keys: |
${{ runner.os }}-node-${{ matrix.node-version }}-turbo-
- name: Install
run: pnpm install --frozen-lockfile
- name: Unit tests
run: pnpm unit
compatibility:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version:
- "22"
- "24"
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
- name: Restore Turbo cache
uses: actions/cache@v5
with:
path: .turbo
key: ${{ runner.os }}-node-${{ matrix.node-version }}-turbo-${{ hashFiles('pnpm-lock.yaml', 'turbo.json') }}
restore-keys: |
${{ runner.os }}-node-${{ matrix.node-version }}-turbo-
- name: Install
run: pnpm install --frozen-lockfile
- name: Compatibility contract tests
run: pnpm compat
build:
runs-on: ubuntu-latest
needs: [lint, typecheck, unit, compatibility]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: "22"
cache: pnpm
- name: Restore Turbo cache
uses: actions/cache@v5
with:
path: .turbo
key: ${{ runner.os }}-node-22-turbo-${{ hashFiles('pnpm-lock.yaml', 'turbo.json') }}
restore-keys: |
${{ runner.os }}-node-22-turbo-
- name: Install
run: pnpm install --frozen-lockfile
- name: Validate package metadata
run: pnpm validate
- name: Build
run: pnpm build
e2e:
runs-on: ubuntu-latest
needs: [build]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: "22"
cache: pnpm
- name: Restore Turbo cache
uses: actions/cache@v5
with:
path: .turbo
key: ${{ runner.os }}-node-22-turbo-${{ hashFiles('pnpm-lock.yaml', 'turbo.json') }}
restore-keys: |
${{ runner.os }}-node-22-turbo-
- name: Install
run: pnpm install --frozen-lockfile
- name: End-to-end tests
run: pnpm e2e
benchmark:
runs-on: ubuntu-latest
needs: [build]
if: github.event_name != 'merge_group'
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: "22"
cache: pnpm
- name: Install
run: pnpm install --frozen-lockfile
- name: Benchmark
run: pnpm bench:ci
- name: Upload benchmark artifacts
uses: actions/upload-artifact@v4
with:
name: benchmark-results
path: .artifacts/benchmarks/*.json
if-no-files-found: error