ci(deps): bump actions/checkout from 6 to 7 #112
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: CI | |
| # Run typecheck, build, and unit tests on every PR and every push to main. | |
| # This is the minimum bar: no deployment, no integration tests, no fancy | |
| # matrix. Catches obvious breakage before review. | |
| # | |
| # Why Node 20: package.json's engines field pins >=20, so that's the | |
| # minimum supported version. We don't matrix across versions because the | |
| # code doesn't use any version-specific APIs beyond what node:test and | |
| # the built-in fetch give us. | |
| on: | |
| pull_request: | |
| branches: [main] | |
| push: | |
| branches: [main] | |
| # Cancel in-progress runs when a new commit is pushed to the same branch. | |
| # Saves compute and keeps the "latest" status accurate. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| name: typecheck + test | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: "20" | |
| cache: npm | |
| - name: Install dependencies | |
| # Use npm ci for reproducible installs from package-lock.json. | |
| # Fails fast if the lockfile is out of sync with package.json. | |
| run: npm ci | |
| - name: Typecheck | |
| # tsc --noEmit over both src/ and api/ (see tsconfig.typecheck.json). | |
| run: npm run typecheck | |
| - name: Build | |
| # tsc emit to dist/. Catches any rootDir/outDir config drift that | |
| # typecheck alone might miss. | |
| run: npm run build | |
| - name: Unit tests | |
| # node:test via tsx (see tests/). No env vars required — | |
| # tests/helpers/setupEnv.ts stubs the mandatory vars at import. | |
| run: npm test | |
| - name: Lint config (INBOUND_PHONE_VOICE_MAP) | |
| # Strict validator over the env-set JSON. INBOUND_PHONE_VOICE_MAP | |
| # is unset in CI so this is a no-op on most PRs (exits 0 on | |
| # empty input). The step still runs to catch regressions in | |
| # scripts/lint-config.ts itself and the pure validator chain. | |
| run: npm run lint:config |