name: Validate repository keys and clients on: pull_request: push: branches: [main] permissions: contents: read jobs: check: runs-on: ubuntu-latest timeout-minutes: 15 steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4 - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: node-version: '22' cache: npm - run: npm ci - name: Install shell test interpreters run: sudo apt-get update && sudo apt-get install -y busybox shellcheck - name: Run unit, shell, and real-browser tests run: npm test env: BROWSER_TESTS: '1' BROWSER_ARTIFACTS_DIR: /tmp/quickly-browser-artifacts - name: Build isolated test fixture (never deployed) run: npm run build:test - name: Validate Worker bundle without publishing run: npx wrangler deploy --dry-run --config cf-worker/wrangler.toml --outdir /tmp/worker-dry-run - name: Upload browser evidence if: always() uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 with: name: browser-evidence path: /tmp/quickly-browser-artifacts if-no-files-found: ignore retention-days: 7