feat(engine): degenerate levels — normalize(), the content algebra, the min-disks split (§4, §6, §8) #79
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: tests | |
| # Headless suites run on every push to main and every PR. They are the automated | |
| # gate the project lacked (Vercel preview deploys check the UI, not the engine). | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| jobs: | |
| headless: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| # Zero runtime deps (no package.json to install). The loop itself lives in | |
| # .development/automation/test.sh so that the local command and this gate | |
| # are literally the same code and cannot drift apart. The job name must | |
| # stay `headless`: it is the required status check on main. | |
| - name: Run headless suites (one at a time) | |
| run: bash .development/automation/test.sh | |
| # Editor-level type check, run the same way from the terminal. Not a required | |
| # status check (headless is): types are advisory on a vanilla-JS repo, and | |
| # this job also needs the network to fetch TypeScript through npx. | |
| typecheck: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| - name: Type check the engine (jsconfig.json, @ts-check files) | |
| run: bash .development/automation/typecheck.sh |