Skip to content

Improve run script generation prompt for one-shot correctness #28

Improve run script generation prompt for one-shot correctness

Improve run script generation prompt for one-shot correctness #28

Workflow file for this run

name: Code Quality
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
quality-checks:
name: Quality Checks
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v4
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
test:
name: Tests
runs-on: ubuntu-latest
needs: quality-checks
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.15.1'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
# Cache native modules to speed up rebuilds
- name: Cache native modules
uses: actions/cache@v4
with:
path: |
main/node_modules/.bin
main/build
~/.electron
~/.electron-gyp
key: ${{ runner.os }}-native-modules-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-native-modules-
- name: Cache Electron binaries
uses: actions/cache@v4
with:
path: |
~/.cache/electron
~/.cache/electron-builder
key: ${{ runner.os }}-electron-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-electron-
# Build frontend and main process in parallel for faster builds
- name: Build application components
run: |
# Build both frontend and main process concurrently
pnpm run build:frontend &
pnpm run build:main &
wait
- name: Rebuild native modules
run: pnpm run electron:rebuild
- name: Setup display for Electron
run: |
sudo apt-get update -qq
sudo apt-get install -y --no-install-recommends xvfb
export DISPLAY=:99
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &
- name: Cache Playwright browsers
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-playwright-
- name: Install Playwright browsers
run: pnpm exec playwright install --with-deps chromium
- name: Configure git for tests
run: |
git config --global init.defaultBranch main
git config --global user.email "test@example.com"
git config --global user.name "Test User"
- name: Run tests
run: |
export DISPLAY=:99
# Using minimal test suite until permission tests are fixed
# See: https://github.com/parsakhaz/foozol/issues/XXX
pnpm test:ci:minimal
env:
CI: true
ELECTRON_DISABLE_SANDBOX: 1
timeout-minutes: 5
- name: Upload test artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: playwright-report
path: |
playwright-report/
test-results/
retention-days: 7