Skip to content

fix(studio): isolate concurrent experiment run ownership #30

fix(studio): isolate concurrent experiment run ownership

fix(studio): isolate concurrent experiment run ownership #30

name: Better Harness Desktop
on:
pull_request:
paths:
- 'packages/better-harness-desktop/**'
- 'packages/harness-studio/**'
- 'packages/harness/**'
- 'scripts/**'
- 'package.json'
- 'package-lock.json'
- '.github/workflows/better-harness-desktop.yml'
workflow_dispatch:
permissions:
contents: read
jobs:
desktop:
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '24'
cache: npm
- uses: actions/setup-go@v7
with:
go-version-file: packages/better-harness-desktop/go/esbuild-service/go.mod
cache-dependency-path: packages/better-harness-desktop/go/esbuild-service/go.sum
- uses: dtolnay/rust-toolchain@1.96.0
- run: npm ci
- run: npm run better-harness-desktop:test
- run: npm run better-harness-desktop:pack
env:
CSC_IDENTITY_AUTO_DISCOVERY: 'false'
# Build the stdio test harness without selecting or shipping it on Windows/Linux.
- run: npm run build:go -w @qoder-ai/better-harness-desktop
if: runner.os != 'macOS'
- run: npm run test:go -w @qoder-ai/better-harness-desktop
- run: npm run test:rust -w @qoder-ai/better-harness-desktop
- run: npm run test:native -w @qoder-ai/better-harness-desktop
# Both native suites drive staged Rust executables, so they belong to the
# job that already has a toolchain and a completed build.
- run: npm run test:native -w @qoder-ai/harness
- run: npm run smoke:acp -w @qoder-ai/better-harness-desktop
- if: runner.os != 'Linux'
run: npm run smoke -w @qoder-ai/better-harness-desktop -- --packaged
- if: runner.os == 'Linux'
run: xvfb-run -a npm run smoke -w @qoder-ai/better-harness-desktop -- --packaged
- uses: actions/upload-artifact@v4
if: always()
with:
name: desktop-smoke-${{ matrix.os }}
path: packages/better-harness-desktop/dist/smoke