feat: jig start launcher, Tasks view, and run outcomes in the web UI #73
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: | |
| push: | |
| branches: | |
| - main | |
| permissions: | |
| contents: read | |
| jobs: | |
| linux: | |
| name: Linux checks | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 | |
| with: | |
| go-version-file: go.mod | |
| cache: true | |
| - uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3 # v4 | |
| - name: Run all checks | |
| run: just check | |
| - name: Run race suite (claim/heartbeat/sweep, worker, phase engine) | |
| run: just test-race | |
| macos: | |
| name: macOS checks | |
| runs-on: macos-15 | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 | |
| with: | |
| go-version-file: go.mod | |
| cache: true | |
| - uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3 # v4 | |
| - name: Run all checks | |
| run: just check | |
| - name: Run race suite (claim/heartbeat/sweep, worker, phase engine) | |
| run: just test-race | |
| # The UI is committed as a built artifact so operators never need Node | |
| # (R18). This job is what keeps the committed bundle honest: it runs the | |
| # frontend tests, rebuilds dist from source, and fails if the rebuild | |
| # differs from what is in the tree. | |
| ui: | |
| name: UI tests and committed bundle | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| defaults: | |
| run: | |
| working-directory: web | |
| steps: | |
| - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| # Tasks.test.tsx validates the generated starters with the real jig binary. | |
| - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 | |
| with: | |
| go-version-file: go.mod | |
| cache: true | |
| - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0 | |
| with: | |
| node-version: 24.18.0 | |
| cache: npm | |
| cache-dependency-path: web/package-lock.json | |
| - name: Install | |
| run: npm ci | |
| - name: Typecheck | |
| run: npm run typecheck | |
| - name: Test | |
| run: npm test | |
| - name: Rebuild the embedded bundle | |
| run: npm run build | |
| - name: The committed bundle must match its source | |
| working-directory: . | |
| run: git diff --exit-code -- web/dist | |
| check: | |
| name: check | |
| if: always() | |
| needs: [linux, macos, ui] | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Require every platform check | |
| env: | |
| LINUX_RESULT: ${{ needs.linux.result }} | |
| MACOS_RESULT: ${{ needs.macos.result }} | |
| UI_RESULT: ${{ needs.ui.result }} | |
| run: | | |
| test "$LINUX_RESULT" = success | |
| test "$MACOS_RESULT" = success | |
| test "$UI_RESULT" = success |