Complete worked example
yaml
name: QA lab
on: [pull_request]
permissions:
contents: read
jobs:
tests:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: "24"
- run: npm ci
- run: npm run typecheck
- run: npx playwright install --with-deps chromium
- run: npm test- Reasoning
- The job preserves separate dependency, type and behavior outcomes with bounded permissions and time.