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.
44 lines
1011 B
YAML
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
|