Skip to content
Open
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
6 changes: 3 additions & 3 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
cache: 'npm'

- name: 📥 Download deps
run: npm install --prefer-offline --no-audit --no-fund
run: bun install --prefer-offline --no-audit --no-fund

- name: 🔧 Configure git
run: |
Expand All @@ -45,11 +45,11 @@ jobs:

- name: 🎨 Run Prettier
run:
npx prettier --write "**/*.{js,jsx,ts,tsx,md,css}" --ignore-path
bunx prettier --write "**/*.{js,jsx,ts,tsx,md,css}" --ignore-path
.prettierignore

- name: 🔍 Run ESLint --fix
run: npm run lint -- --fix
run: bun run lint -- --fix
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Bun Commands Fail Due to Node Setup

The format.yml workflow attempts to run Bun commands (bun install, bunx) but still uses actions/setup-node@v4 for environment setup. This means Bun isn't installed, so these commands will likely fail. The npm cache configured is also ineffective for Bun.

Fix in Cursor Fix in Web


- name: 💾 Commit changes
run: |
Expand Down
78 changes: 35 additions & 43 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,16 @@ jobs:
- name: ⬇️ Checkout repo
uses: actions/checkout@v5

- name: Setup node
uses: actions/setup-node@v6
- name: 🥖 Setup Bun
uses: oven-sh/setup-bun@v2
with:
node-version: 24
cache: 'npm'
bun-version: latest

- name: 📥 Download deps
run: npm install --prefer-offline --no-audit --no-fund
run: bun install

- name: 🔬 Lint
run: npm run lint
run: bun run lint

build:
name: 🏗 Build
Expand All @@ -41,17 +40,16 @@ jobs:
- name: ⬇️ Checkout repo
uses: actions/checkout@v5

- name: Setup node
uses: actions/setup-node@v6
- name: 🥖 Setup Bun
uses: oven-sh/setup-bun@v2
with:
node-version: 24
cache: 'npm'
bun-version: latest

- name: 📥 Download deps
run: npm install --prefer-offline --no-audit --no-fund
run: bun install

- name: 🏗 Build
run: npm run build
run: bun run build
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
Expand All @@ -61,7 +59,7 @@ jobs:

# run install again so the local .bin files get where they should go.
- name: 📥 Download deps
run: npm install --prefer-offline --no-audit --no-fund
run: bun install

- name: 📦 Upload All Build Artifacts
uses: actions/upload-artifact@v4
Expand All @@ -84,11 +82,10 @@ jobs:
- name: ⬇️ Checkout repo
uses: actions/checkout@v5

- name: Setup node
uses: actions/setup-node@v6
- name: 🥖 Setup Bun
uses: oven-sh/setup-bun@v2
with:
node-version: 24
cache: 'npm'
bun-version: latest

- name: 📥 Download All Build Artifacts
uses: actions/download-artifact@v4
Expand All @@ -97,10 +94,10 @@ jobs:
path: packages

- name: 📥 Download deps
run: npm install --prefer-offline --no-audit --no-fund
run: bun install

- name: 🧪 Run tests
run: npm test -- --no-watch
run: bun run test -- --no-watch

typecheck:
name: ʦ TypeScript
Expand All @@ -111,11 +108,10 @@ jobs:
- name: ⬇️ Checkout repo
uses: actions/checkout@v5

- name: Setup node
uses: actions/setup-node@v6
- name: 🥖 Setup Bun
uses: oven-sh/setup-bun@v2
with:
node-version: 24
cache: 'npm'
bun-version: latest

- name: 📥 Download All Build Artifacts
uses: actions/download-artifact@v4
Expand All @@ -124,10 +120,10 @@ jobs:
path: packages

- name: 📥 Download deps
run: npm install --prefer-offline --no-audit --no-fund
run: bun install

- name: 🔎 Type check
run: npm run typecheck
run: bun run typecheck

playwright:
name: 🎭 Playwright
Expand All @@ -138,11 +134,10 @@ jobs:
- name: ⬇️ Checkout repo
uses: actions/checkout@v5

- name: Setup node
uses: actions/setup-node@v6
- name: 🥖 Setup Bun
uses: oven-sh/setup-bun@v2
with:
node-version: 24
cache: 'npm'
bun-version: latest

- name: 📥 Download All Build Artifacts
uses: actions/download-artifact@v4
Expand All @@ -151,7 +146,7 @@ jobs:
path: packages

- name: 📥 Download deps
run: npm install --prefer-offline --no-audit --no-fund
run: bun install
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Playwright Cache Issue with Bun Lockfile

The Playwright browser cache key still uses package-lock.json hash pattern but bun uses bun.lockb as its lockfile. This will cause cache misses and unnecessary browser reinstalls. Should be changed to ${{ hashFiles('**/bun.lockb') }}.

Fix in Cursor Fix in Web


- name: 📦 Cache Playwright Browsers
uses: actions/cache@v4
Expand Down Expand Up @@ -190,11 +185,10 @@ jobs:
- name: ⬇️ Checkout repo
uses: actions/checkout@v5

- name: Setup node
uses: actions/setup-node@v6
- name: 🥖 Setup Bun
uses: oven-sh/setup-bun@v2
with:
node-version: 24
cache: 'npm'
bun-version: latest

- name: 📥 Download All Build Artifacts
uses: actions/download-artifact@v4
Expand All @@ -203,10 +197,10 @@ jobs:
path: packages

- name: 📥 Download deps
run: npm install --prefer-offline --no-audit --no-fund
run: bun install

- name: ▶️ Run setup script
run: node setup.mjs
run: bun setup.mjs
working-directory: ./example
continue-on-error: true

Expand All @@ -232,12 +226,10 @@ jobs:
with:
fetch-depth: 0

- name: Setup node
uses: actions/setup-node@v6
- name: 🥖 Setup Bun
uses: oven-sh/setup-bun@v2
with:
node-version: 24
registry-url: 'https://registry.npmjs.org'
cache: 'npm'
bun-version: latest

- name: 📥 Download All Build Artifacts
uses: actions/download-artifact@v4
Expand All @@ -246,7 +238,7 @@ jobs:
path: packages

- name: 📥 Download deps
run: npm install --prefer-offline --no-audit --no-fund
run: bun install

- name: 🚀 Release
run: npx tsx other/release.ts --dry-run=false
run: bun other/release.ts --dry-run=false
18 changes: 9 additions & 9 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,15 @@ installed in individual repositories which resemble the structure of the

## Dev environment tips

- Run lower-level tests with `npm run test`
- Run higher-level tests with `npm run test:e2e` (uses playwright)
- Run basic build, type checking, linting, and tests with `npm run validate`
- Run lower-level tests with `bun run test`
- Run higher-level tests with `bun run test:e2e` (uses playwright)
- Run basic build, type checking, linting, and tests with `bun run validate`
- Find the CI plan in the .github/workflows folder.
- Commit your changes, then run the following and commit any changes that are
made separately:
- Run `npm run lint -- --fix` to fix linting errors
- Run `npm run format` to fix formatting errors
- Run `npm run validate` to run all tests and checks
- Run `bun run lint -- --fix` to fix linting errors
- Run `bun run format` to fix formatting errors
- Run `bun run validate` to run all tests and checks

## Docs

Expand Down Expand Up @@ -80,9 +80,9 @@ installed). Only the most important bits are enforced by eslint.

- **Build order matters**: In this monorepo, you must build workspace
dependencies before building the main app:
1. `npm run build --workspace=@epic-web/workshop-utils`
2. `npm run build --workspace=@epic-web/workshop-presence`
3. `npm run build --workspace=@epic-web/workshop-app`
1. `bun run build --workspace=@epic-web/workshop-utils`
2. `bun run build --workspace=@epic-web/workshop-presence`
3. `bun run build --workspace=@epic-web/workshop-app`
- **Always build before testing**: After making code changes, always run the
build process before starting the dev server to test changes, especially when
working with client-side functionality.
Loading
Loading