Skip to content

chore(release): prepare v0.0.33 #1230

chore(release): prepare v0.0.33

chore(release): prepare v0.0.33 #1230

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
concurrency:
group: ci-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
check:
name: Check
runs-on: ubuntu-24.04
timeout-minutes: 30
env:
# The default Electron binary source (GitHub releases) was returning a
# partial/empty archive on the runner, leaving node_modules/electron
# without a usable binary and failing every apps/desktop test. Pull the
# prebuilt binary from a mirror instead.
ELECTRON_MIRROR: https://npmmirror.com/mirrors/electron/
steps:
- name: Checkout
uses: actions/checkout@v6
with:
sparse-checkout: |
/*
!/.repos/
sparse-checkout-cone-mode: false
- name: Setup Vite+
uses: voidzero-dev/setup-vp@v1
with:
node-version-file: package.json
cache: true
run-install: true
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Cache Electron binary
uses: actions/cache@v5
with:
path: ~/.cache/electron
key: ${{ runner.os }}-electron-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-electron-
# Best-effort: the Electron archive intermittently extracts incompletely
# on GitHub-hosted runners; the desktop build below only needs the JS
# pipeline, not the binary.
- name: Ensure Electron runtime is installed
continue-on-error: true
run: vp run --filter @t3tools/desktop ensure:electron
- name: Check
run: vp check
- name: Typecheck
run: vpr typecheck
- name: Check resource monitor formatting
run: cargo fmt --manifest-path native/resource-monitor/Cargo.toml -- --check
- name: Build desktop pipeline
run: vp run build:desktop
- name: Verify preload bundle output
run: |
test -f apps/desktop/dist-electron/preload.cjs
grep -nE "desktopBridge|getLocalEnvironmentBootstrap|PICK_FOLDER_CHANNEL|wsUrl" apps/desktop/dist-electron/preload.cjs
grep -n "__clerk_internal_electron_passkeys" apps/desktop/dist-electron/preload.cjs
test:
name: Test
runs-on: ubuntu-24.04
timeout-minutes: 30
env:
ELECTRON_MIRROR: https://npmmirror.com/mirrors/electron/
steps:
- name: Checkout
uses: actions/checkout@v6
with:
sparse-checkout: |
/*
!/.repos/
sparse-checkout-cone-mode: false
- name: Setup Vite+
uses: voidzero-dev/setup-vp@v1
with:
node-version-file: package.json
cache: true
run-install: true
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache Electron binary
uses: actions/cache@v5
with:
path: ~/.cache/electron
key: ${{ runner.os }}-electron-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-electron-
- name: Ensure Electron runtime is installed
continue-on-error: true
run: vp run --filter @t3tools/desktop ensure:electron
- name: Test
env:
T3CODE_TRANSFER_BUDGET_REPORT_PATH: ${{ runner.temp }}/t3code-transfer-budget.md
T3CODE_TRANSFER_BUDGET_RESULT_PATH: ${{ runner.temp }}/thread-transfer-result.json
run: vp run --filter './apps/*' --filter './packages/*' --filter '!@t3tools/desktop' test
- name: Publish transfer budget report
if: always()
run: |
if test -f "${{ runner.temp }}/t3code-transfer-budget.md"; then
tee -a "$GITHUB_STEP_SUMMARY" < "${{ runner.temp }}/t3code-transfer-budget.md"
else
echo "Transfer budget report was not produced." >> "$GITHUB_STEP_SUMMARY"
fi
- name: Upload thread transfer result
if: always()
uses: actions/upload-artifact@v7
with:
name: thread-transfer-results
path: ${{ runner.temp }}/thread-transfer-result.json
if-no-files-found: ignore
retention-days: 30
- name: Test resource monitor
run: cargo test --locked --manifest-path native/resource-monitor/Cargo.toml
# Non-blocking: Electron's binary cannot currently be installed reliably
# on GitHub-hosted runners (see the best-effort step above), so these
# would fail for environmental reasons. They still run and report;
# re-make this blocking once Electron installs cleanly in CI.
- name: Desktop tests (non-blocking — Electron unavailable on CI)
continue-on-error: true
run: vp run --filter @t3tools/desktop test
test_browser:
name: Test Browser
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Vite+
uses: voidzero-dev/setup-vp@v1
with:
node-version-file: package.json
cache: true
run-install: true
- name: Cache Playwright browsers
uses: actions/cache@v5
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-playwright-
# The Playwright browser download intermittently stalls on GitHub-hosted
# runners. Cap the step so a stall can't hang the job, and keep it (and
# the browser tests) non-blocking so a flaky download doesn't fail CI.
# They still run and report when the network cooperates; the browser
# cache above keeps successful runs fast.
- name: Install browser test runtime
continue-on-error: true
timeout-minutes: 12
run: vp run --filter @t3tools/web test:browser:install
- name: Browser test / Chat view
continue-on-error: true
working-directory: apps/web
run: vp test run --mode browser --browser=chromium src/components/ChatView.browser.tsx
- name: Browser test / Chat markdown
continue-on-error: true
working-directory: apps/web
run: vp test run --mode browser --browser=chromium src/components/ChatMarkdown.browser.tsx
- name: Browser test / Components
continue-on-error: true
working-directory: apps/web
run: |
vp test run --mode browser --browser=chromium \
src/components/GitActionsControl.browser.tsx \
src/components/KeybindingsToast.browser.tsx \
src/components/ThreadTerminalDrawer.browser.tsx \
src/components/chat/MessagesTimeline.browser.tsx \
src/components/chat/ProviderModelPicker.browser.tsx \
src/components/chat/CompactComposerControlsMenu.browser.tsx \
src/components/settings/SettingsPanels.browser.tsx
mobile_native_static_analysis:
name: Mobile Native Static Analysis
runs-on: macos-26
timeout-minutes: 20
steps:
- name: Checkout
uses: actions/checkout@v6
with:
sparse-checkout: |
/*
!/.repos/
sparse-checkout-cone-mode: false
- name: Setup Vite+
uses: voidzero-dev/setup-vp@v1
with:
node-version-file: package.json
cache: true
run-install: |
args:
- --filter=@t3tools/scripts...
- name: Install mobile native static analysis tools
run: brew bundle install --file apps/mobile/Brewfile
- name: Lint mobile native sources
run: vp run lint:mobile
release_smoke:
name: Release Smoke
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- name: Checkout
uses: actions/checkout@v6
with:
sparse-checkout: |
/*
!/.repos/
sparse-checkout-cone-mode: false
- name: Setup Vite+
uses: voidzero-dev/setup-vp@v1
with:
node-version-file: package.json
cache: true
run-install: |
args:
- --filter=@t3tools/scripts...
- name: Exercise release-only workflow steps
run: node scripts/release-smoke.ts