test(render): assert palette conformance once, not per pixel #107
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: | |
| pull_request: | |
| branches: [master] | |
| push: | |
| branches: [master] | |
| jobs: | |
| typecheck: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-node@v6 | |
| with: { node-version: 24 } | |
| - run: corepack enable && yarn install --immutable | |
| - run: yarn typecheck | |
| unit-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-node@v6 | |
| with: { node-version: 24 } | |
| - run: corepack enable && yarn install --immutable | |
| - run: yarn install-playwright-browser | |
| - run: yarn test | |
| docker-deploy: | |
| # Build + push the runtime image to GHCR; TrueNAS pulls it from there. | |
| needs: [typecheck, unit-tests] | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Log in to GHCR | |
| uses: docker/login-action@v4 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build image | |
| run: | | |
| docker build \ | |
| -t ghcr.io/sawtaytoes/castkit:latest \ | |
| -t ghcr.io/sawtaytoes/castkit:${{ github.sha }} \ | |
| . | |
| - name: Push image | |
| run: | | |
| # The old inkcast image stays frozen at its pre-rename tag until the | |
| # fleet topic migration retires the inkcast TrueNAS app. | |
| docker push ghcr.io/sawtaytoes/castkit:latest | |
| docker push ghcr.io/sawtaytoes/castkit:${{ github.sha }} |