name: Harness
on:
workflow_dispatch:
pull_request:
branches:
- main
paths:
- 'harness/**'
- 'tests/unit/harness-specs.test.ts'
- 'package.json'
- 'pnpm-lock.yaml'
- 'pnpm-workspace.yaml'
- '.github/workflows/harness.yml'
jobs:
harness:
runs-on: ubuntu-latest
env:
ELECTRON_SKIP_BINARY_DOWNLOAD: '1'
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'pnpm'
- name: Prefer HTTPS for public GitHub git dependencies
run: |
git config --global "url.https://github.com/.insteadOf" "git@github.com:"
git config --global --add "url.https://github.com/.insteadOf" "ssh://git@github.com/"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run harness CI checks
run: pnpm run harness:ci
- name: Upload harness artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: harness-artifacts
path: artifacts/harness
if-no-files-found: warn
retention-days: 7