README showcase: emission API + completed illuminant catalog (v0.14.1) #29
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 | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| jobs: | |
| verify: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| node: [22, 24] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| cache: npm | |
| - run: npm ci | |
| - name: Tests (derivation, round-trip, differential oracles, codegen parity) | |
| run: npm test | |
| - name: Zero-allocation audit | |
| run: npm run alloc | |
| - name: Type definitions check | |
| run: npx --yes --package typescript@5 tsc --noEmit --strict types.d.ts codegen.d.ts | |
| - name: Precision bounds table | |
| run: npm run precision >> "$GITHUB_STEP_SUMMARY" | |
| gpu-parity: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 24 | |
| cache: npm | |
| - run: npm ci | |
| - run: npx playwright install --with-deps chromium | |
| - name: Execute every emitted shader on GPU (SwiftShader) | |
| run: node tools/gpu-parity.js | |
| bun: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: oven-sh/setup-bun@v2 | |
| # smoke: the library imports and converts under JavaScriptCore | |
| - run: | | |
| bun -e "const m = await import('./src/index.js'); const c = m.convert([0.7,0.1,250],'oklch','srgb'); if (!c.every(Number.isFinite)) throw new Error('bad convert: ' + c); console.log('bun smoke ok', c);" | |
| # the full precision sweep exercises every space round-trip on JSC | |
| - run: bun tools/precision-table.js | |
| # and the bench answers the JSC-speed question on a server runtime | |
| - run: bun tools/bench.js |