Skip to content

Make phone pairing survive real networks (#126) #709

Make phone pairing survive real networks (#126)

Make phone pairing survive real networks (#126) #709

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
inputs:
deploy:
description: "Deploy app.threadlines.dev after checks pass. Only applies when dispatched from main."
required: false
default: false
type: boolean
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
quality:
name: Format, Lint, Typecheck, Test, Browser Test, Build
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup Vite+
uses: voidzero-dev/setup-vp@250f29ce396baf5e8f24498e17c0dfdebabc26eb # v1
with:
node-version-file: package.json
cache: true
version: "0.2.4"
run-install: false
- name: Install dependencies
run: vp install --frozen-lockfile
- name: Ensure Electron binary is installed
run: node scripts/ensure-electron-binary.ts
- name: Format
run: vp fmt --check
- name: Lint
run: vp exec vp lint --report-unused-disable-directives
- name: Vendored Playwright injected script is current
run: node scripts/extract-playwright-injected.ts --check
- name: Typecheck
run: vp exec vp run -r --concurrency-limit 2 typecheck
- name: Test
run: vp exec vp run test
- name: Install browser test runtime
run: vp exec vp run --filter @threadlines/web test:browser:install
- name: Browser test
run: vp exec vp run --filter @threadlines/web test:browser
- name: Build desktop pipeline
run: vp exec 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
release_smoke:
name: Release Smoke
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup Vite+
uses: voidzero-dev/setup-vp@250f29ce396baf5e8f24498e17c0dfdebabc26eb # v1
with:
node-version-file: package.json
cache: true
version: "0.2.4"
run-install: false
- name: Install dependencies
run: vp install --frozen-lockfile
- name: Exercise release-only workflow steps
run: node scripts/release-smoke.ts
deploy_web_app:
name: Deploy app.threadlines.dev
needs:
- quality
- release_smoke
if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main' && inputs.deploy == true
uses: ./.github/workflows/deploy-web.yml
secrets: inherit