name: Check & deploy on: push: branches: ['main'] pull_request: branches: ['main'] workflow_dispatch: concurrency: group: 'pages' cancel-in-progress: false jobs: build: runs-on: docker steps: - uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version-file: '.nvmrc' cache: 'npm' - name: Install dependencies run: | npm ci npx playwright install --with-deps chromium - name: Test run: | npm run lint:check npm run format:check npm run typecheck npm run typecheck:e2e npm test - name: Test E2E run: | npm run test:e2e - name: Build run: | npm run build - name: Upload Playwright report if: failure() uses: actions/upload-artifact@v4 with: name: playwright-report path: | playwright-report/ test-results/ retention-days: 7 - name: Copy build to host pages mount if: github.event_name == 'push' && github.ref == 'refs/heads/main' run: | apt update && apt install -y rsync rsync -a --delete dist/ /pages/fleeting