Improve run script generation prompt for one-shot correctness #28
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |