Files
Michael Bolin bb1bcecebf fix: CI was not terminating when dist.js was not updated (#46)
I noticed that this action appeared to "hang" when it failed. Codex's
hypothesis:

> The “hang” is the runner spewing an enormous diff. `dist/main.js`
includes the entire sourcemap as a base64 data URI, so any real change
rewrites megabytes of single-line text. When the `Ensure dist matches
bundled output` step hits the failure branch, `git --no-pager diff dist`
tries to stream that whole blob to the Actions log. GitHub throttles
large log output, so the step sits there for a long time while it slowly
uploads the diff, which looks like a hang even though the job is just
printing. The quickest fix is to stop dumping the full diff—e.g. swap in
`git --no-pager diff --stat dist` or `git status --short dist` so the
log stays tiny and the step fails immediately.

Let's try its proposed fix.
2025-11-02 11:33:50 -08:00

44 lines
1011 B
YAML

name: Verify TypeScript Build
on:
pull_request:
push:
branches:
- main
jobs:
verify:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
run_install: false
- name: Setup Node.js
uses: actions/setup-node@v5
with:
node-version: 22
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Typecheck
run: pnpm run check
- name: Build bundles
run: pnpm run build
- name: Ensure dist matches bundled output
run: |
status_output="$(git status --short -- dist)"
if [[ -n "$status_output" ]]; then
echo '::error::Detected modified files in dist/ after running pnpm run build. Please rebuild locally and commit the updated bundles.'
echo "$status_output"
exit 1
fi