Skip to content

Bump to 0.4.5

Bump to 0.4.5 #44

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- uses: mlugg/setup-zig@v2
with:
version: 0.15.2
- name: Install binaryen (wasm-opt)
run: sudo apt-get install -y binaryen
- name: Install
run: bun install
- name: Build
run: bun run build
- name: Test
run: bun run test
- name: Install Playwright browsers
run: npx playwright install --with-deps chromium
- name: Test — Worker Transferable (Playwright)
run: npx playwright test --config test/browser/playwright.config.ts
benchmark:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- uses: mlugg/setup-zig@v2
with:
version: 0.15.2
- name: Install binaryen (wasm-opt)
run: sudo apt-get install -y binaryen
- name: Install
run: bun install
- name: Build
run: bun run build
- name: Install bench dependencies
run: cd bench/ai-parsers && bun install
- name: Benchmark — Parse & Stream
run: |
timeout 300 bun --expose-gc bench/parse-stream.mjs 2>&1 | tee /tmp/bench-parse.txt || echo '⏱ Exceeded 5 min timeout' >> /tmp/bench-parse.txt
- name: Benchmark — Time to First Action
run: |
timeout 300 bun --expose-gc bench/time-to-first-action.mjs 2>&1 | tee /tmp/bench-ttfa.txt || echo '⏱ Exceeded 5 min timeout' >> /tmp/bench-ttfa.txt
- name: Benchmark — AI SDK Comparison
run: |
cd bench/ai-parsers && timeout 300 bun --expose-gc bench.mjs 2>&1 | tee /tmp/bench-ai.txt || echo '⏱ Exceeded 5 min timeout' >> /tmp/bench-ai.txt
- name: Benchmark — Deep Compare
run: |
timeout 300 node --expose-gc bench/deep-compare.mjs 2>&1 | tee /tmp/bench-deep-compare.txt || echo '⏱ Exceeded 5 min timeout' >> /tmp/bench-deep-compare.txt
- name: Install Playwright browsers
run: npx playwright install --with-deps chromium
- name: Benchmark — Worker Transfer vs Clone (Playwright)
run: |
npx playwright test --config bench/browser/playwright.config.ts 2>&1 | tee /tmp/bench-worker.txt || true
- name: Post benchmark results to summary
if: always()
run: |
echo '## Benchmark Results' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo '<details><summary>Parse & Stream</summary>' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat /tmp/bench-parse.txt >> $GITHUB_STEP_SUMMARY 2>/dev/null || echo 'No output'>> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo '</details>' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo '<details><summary>Time to First Action</summary>' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat /tmp/bench-ttfa.txt >> $GITHUB_STEP_SUMMARY 2>/dev/null || echo 'No output' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo '</details>' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo '<details><summary>AI SDK Comparison</summary>' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat /tmp/bench-ai.txt >> $GITHUB_STEP_SUMMARY 2>/dev/null || echo 'No output' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo '</details>' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo '<details><summary>Deep Compare</summary>' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat /tmp/bench-deep-compare.txt >> $GITHUB_STEP_SUMMARY 2>/dev/null || echo 'No output' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo '</details>' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo '<details><summary>Worker Transfer vs Clone (Browser)</summary>' >> $GITHUB_STEP_SUMMARY
echo '' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat /tmp/bench-worker.txt >> $GITHUB_STEP_SUMMARY 2>/dev/null || echo 'No output' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo '</details>' >> $GITHUB_STEP_SUMMARY