Say what flue is: a hero that names Claude Code and Codex, and four places that were being clever #209
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 | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| permissions: | |
| contents: read | |
| jobs: | |
| checks: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install the toolchain from mise.toml | |
| uses: jdx/mise-action@v4 | |
| # mise-action caches the tools it installs, but not the pnpm store; | |
| # cache it separately, keyed on the lockfile. | |
| - name: Locate the pnpm store | |
| id: pnpm-store | |
| run: echo "path=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT" | |
| - name: Cache the pnpm store | |
| uses: actions/cache@v6 | |
| with: | |
| path: ${{ steps.pnpm-store.outputs.path }} | |
| key: pnpm-store-${{ runner.os }}-${{ hashFiles('web/pnpm-lock.yaml', 'relay/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| pnpm-store-${{ runner.os }}- | |
| # One make invocation, not one per step: `web` is a phony prerequisite | |
| # of both `lint` and `test`, and a single invocation runs it once where | |
| # two separate steps built the frontend twice. | |
| - name: Lint and test | |
| run: make lint test | |
| # ubuntu-latest images ship shellcheck; apt keeps it deterministic | |
| # either way. | |
| - name: Install shellcheck | |
| run: sudo apt-get update -qq && sudo apt-get install -y -qq shellcheck | |
| - name: Shellcheck the install script | |
| run: shellcheck scripts/install.sh scripts/install_test.sh | |
| - name: Install-script tests | |
| run: bash scripts/install_test.sh |