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
2 changes: 2 additions & 0 deletions .changeset/wide-words-unite.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
---
---
156 changes: 50 additions & 106 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ permissions:

env:
CI: "true"
PNPM_VERSION: "10.10.0"
NODE_VERSION: "22"
BUN_VERSION: "latest"

jobs:
lint:
Expand All @@ -26,22 +25,16 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: "pnpm"
bun-version: ${{ env.BUN_VERSION }}

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Lint & Format check
run: pnpm run format-and-lint
run: bun run format-and-lint

typecheck:
name: Type Check
Expand All @@ -50,30 +43,24 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: "pnpm"
bun-version: ${{ env.BUN_VERSION }}

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Restore turbo cache
uses: actions/cache@v5
with:
path: .turbo
key: turbo-typecheck-${{ runner.os }}-${{ hashFiles('**/*.[tj]s', '**/*.[tj]sx', 'pnpm-lock.yaml') }}
key: turbo-typecheck-${{ runner.os }}-${{ hashFiles('**/*.[tj]s', '**/*.[tj]sx', 'bun.lock') }}
restore-keys: |
turbo-typecheck-${{ runner.os }}-

- name: Type check
run: pnpm run typecheck
run: bun run typecheck

check-deps:
name: Check Dependencies
Expand All @@ -82,22 +69,16 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v6
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
node-version: ${{ env.NODE_VERSION }}
cache: "pnpm"
bun-version: ${{ env.BUN_VERSION }}

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Check unused dependencies
run: pnpm run check-deps
run: bun run check-deps

validate-versions:
name: Validate Versions
Expand All @@ -106,22 +87,16 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v6
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
node-version: ${{ env.NODE_VERSION }}
cache: "pnpm"
bun-version: ${{ env.BUN_VERSION }}

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Validate version sync
run: pnpm run validate:versions
run: bun run validate:versions

validate-changeset:
name: Validate Changeset
Expand All @@ -130,22 +105,16 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v6
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
node-version: ${{ env.NODE_VERSION }}
cache: "pnpm"
bun-version: ${{ env.BUN_VERSION }}

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Validate changesets
run: pnpm run validate:changeset
run: bun run validate:changeset

check-schema-diff:
name: Check Schema Diff
Expand All @@ -154,22 +123,16 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: "pnpm"
bun-version: ${{ env.BUN_VERSION }}

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Check schema diff
run: pnpm run check:schema-diff
run: bun run check:schema-diff

test:
name: Test
Expand All @@ -178,25 +141,19 @@ jobs:
steps:
- uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: "pnpm"
bun-version: ${{ env.BUN_VERSION }}

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Prepare test environment
run: pnpm run reset
run: bun run reset

- name: Run tests with coverage
run: pnpm test
- name: Run tests
run: bun run test

build:
name: Build
Expand All @@ -207,30 +164,24 @@ jobs:
with:
fetch-depth: 0

- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: "pnpm"
bun-version: ${{ env.BUN_VERSION }}

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Restore turbo cache
uses: actions/cache@v5
with:
path: .turbo
key: turbo-${{ runner.os }}-${{ hashFiles('**/*.[tj]s', '**/*.[tj]sx', 'pnpm-lock.yaml') }}
key: turbo-${{ runner.os }}-${{ hashFiles('**/*.[tj]s', '**/*.[tj]sx', 'bun.lock') }}
restore-keys: |
turbo-${{ runner.os }}-

- name: Build all packages
run: pnpm run build
run: bun run build
env:
NODE_ENV: production

Expand All @@ -255,23 +206,16 @@ jobs:
echo "needs_changeset=true" >> "$GITHUB_OUTPUT"
fi

- name: Setup pnpm
if: steps.check_files.outputs.needs_changeset == 'true'
uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
- name: Setup Bun
if: steps.check_files.outputs.needs_changeset == 'true'
uses: actions/setup-node@v6
uses: oven-sh/setup-bun@v2
with:
node-version: ${{ env.NODE_VERSION }}
cache: "pnpm"
bun-version: ${{ env.BUN_VERSION }}

- name: Install dependencies
if: steps.check_files.outputs.needs_changeset == 'true'
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Check changeset
if: steps.check_files.outputs.needs_changeset == 'true'
run: pnpm changeset status --since=origin/main
run: bunx changeset status --since=origin/main
21 changes: 7 additions & 14 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ concurrency:
cancel-in-progress: false

env:
PNPM_VERSION: '10.10.0'
NODE_VERSION: '22'
BUN_VERSION: 'latest'

jobs:
e2e:
Expand Down Expand Up @@ -54,25 +53,19 @@ jobs:
- name: Checkout
uses: actions/checkout@v6

- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
version: ${{ env.PNPM_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
bun-version: ${{ env.BUN_VERSION }}

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Build
run: pnpm run build
run: bun run build

- name: Run E2E tests
run: pnpm vitest run --project e2e ${{ matrix.files }}
run: bun test --timeout 300000 ${{ matrix.files }}
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
EXA_API_KEY: ${{ secrets.EXA_API_KEY }}
Expand Down
15 changes: 7 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ permissions:
id-token: write

env:
PNPM_VERSION: '10.10.0'
BUN_VERSION: 'latest'
NODE_VERSION: '22'

jobs:
Expand All @@ -27,27 +27,26 @@ jobs:
with:
token: ${{ secrets.PAT_GITHUB_TOKEN }}

- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
version: ${{ env.PNPM_VERSION }}
bun-version: ${{ env.BUN_VERSION }}

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'pnpm'
registry-url: 'https://registry.npmjs.org'

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Create Release PR or Publish
id: changesets
uses: changesets/action@v1
with:
version: pnpm run version
publish: pnpm run release
version: bun run version
publish: bun run release
title: 'chore: version packages'
commit: 'chore: version packages'
env:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.bun
.claude/
.cursor/
.DS_Store
Expand Down
Loading