name: CI on: push: branches: [main] pull_request: branches: [main] jobs: quality: name: Typecheck + Tests runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: Install dependencies run: npm ci - name: Typecheck (main + preload + shared) run: npm run typecheck:node - name: Typecheck (renderer) run: npm run typecheck:web - name: Run unit tests run: npm run test:run build: name: Build (Windows) runs-on: windows-latest needs: quality steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20' cache: 'npm' - name: Install dependencies run: npm ci - name: Build production bundle (no installer) run: npm run build - name: Smoke-test unpacked build run: npm run dist:dir env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Upload unpacked artifact uses: actions/upload-artifact@v4 with: name: exercise-reminder-unpacked path: release/win-unpacked/ retention-days: 7