Skip to content

release: v2.4.45

release: v2.4.45 #1306

Workflow file for this run

name: Code Quality
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
quality-checks:
name: Quality Checks + Smoke
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Setup pnpm
uses: pnpm/action-setup@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22.15.1'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
- name: Run type checking
run: pnpm typecheck
- name: Run linting
run: pnpm lint
- name: Rebuild native modules for Node tests
run: pnpm rebuild better-sqlite3-multiple-ciphers
- name: Run main process test suite
run: CI=1 pnpm --filter main exec vitest run
- name: Run frontend unit tests
run: CI=1 pnpm --filter frontend test
- name: Install Playwright browser dependencies
run: pnpm exec playwright install --with-deps chromium
- name: Rebuild native modules for Electron smoke tests
run: pnpm run electron:rebuild
- name: Run maintained functional smoke tests
run: xvfb-run -a pnpm test:ci:minimal
env:
PANE_DIR: ${{ runner.temp }}/pane-ci
runpane-wrapper-tests:
name: Runpane Wrapper (${{ matrix.os }}, Node ${{ matrix.node-version }}, Python ${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-2022]
node-version: ['18.17.0', '22.15.1']
python-version: ['3.8', '3.13']
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Setup pnpm
uses: pnpm/action-setup@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install wrapper dependencies
run: pnpm install --filter runpane --ignore-scripts
- name: Check wrapper package versions
run: node scripts/sync-runpane-package-versions.js --check
- name: Build npm wrapper
run: pnpm --filter runpane build
- name: Run wrapper contract tests
run: node scripts/test-runpane-contract.js
- name: Run package manager smoke tests
run: node scripts/test-runpane-package-smoke.js
cross-os-main-tests:
name: Main Process Tests (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-2022]
steps:
- name: Checkout code
uses: actions/checkout@v7
- name: Setup pnpm
uses: pnpm/action-setup@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '22.15.1'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
- name: Run main process type checking
run: pnpm --filter main typecheck
- name: Rebuild native modules for Node tests
run: pnpm rebuild better-sqlite3-multiple-ciphers
- name: Run main process unit tests
run: pnpm --filter main test