Skip to main content

verify-dist

Regenerate and commit dist/index.js when source files or runtime deps change

Quellinformationen

Repository
getsentry/action-release
Letzte Quellaktivität
28. August 2026 um 12:10
Erkannte Sprache von SKILL.md
Englisch
Sterne
494
Forks
65

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
verify-dist
description
Regenerate and commit dist/index.js when source files or runtime deps change
argument-hint
["--check | --fix"]
# Verify Dist Skill `action-release` ships a bundle in `dist/` built by `ncc`. The `verify-dist` CI workflow (`.github/workflows/verify-dist.yml`) fails any PR where the committed bundle does not match the source. This skill keeps them in sync locally. `dist/` is a directory, not a single file. Alongside `dist/index.js`, `ncc` emits code-split chunks (`dist/319.index.js` and friends) for every dynamic `import()` in a dependency. `@opentelemetry/resources` loads its per-platform `getMachineId` that way, so the chunks arrive with `@sentry/node`. `index.js` loads them at runtime with a relative `require`, so they must sit next to it and must all be committed. ## When to invoke - You changed anything under `src/`. - You bumped a **runtime** dep in `package.json` (anything under `dependencies`, not `devDependencies`). - CI posted "Detected uncommitted changes after build" on a PR. ## Modes ### `--check` (default) Report whether `dist/` is in sync with the current source tree. Do not modify anything. ```bash yarn install --frozen-lockfile yarn build git diff --ignore-space-at-eol --stat dist/ git ls-files --others --exclude-standard dist/ # new chunks show up here, not in git diff ``` - If both commands print nothing → `dist/` is in sync. Done. - If either prints something → report the changed files and line counts, then ask the user whether to switch to `--fix`. ### `--fix` Rebuild and stage `dist/`. ```bash yarn install yarn build git add dist/ git status --short dist/ ``` Do **not** commit automatically — let the user review the bundle diff first. A reasonable follow-up commit message: ``` build: regenerate dist/index.js ``` Or, if tied to a source change: ``` <type>(<scope>): <summary> Regenerates dist/index.js. ``` ### Before the user commits: pre-commit hook reminder Whoever runs the follow-up commit needs the repo's pre-commit hooks installed. Verify with `ls .git/hooks/pre-commit`; if missing, run `make` (installs yarn deps + `pre-commit install`) or `pre-commit install`. The `set-docker-tag-from-branch` hook will rewrite `action.yml` on the first commit of a branch and fail the commit. Recover by staging `action.yml` and committing again (**never `--amend`** — the hook-failed commit never landed): ```bash git add action.yml git commit -m "<same message>" ``` CI does **not** run pre-commit. CI's `prepare-docker` job rejects PRs where `action.yml`'s Docker tag still matches a semver like `3.6.0`, so keeping the tag in sync via the local hook is what prevents the CI failure. ## Notes - The CI check runs `git diff --ignore-space-at-eol dist/` — whitespace-only diffs pass, anything else fails. Match that locally. - CI also fails on untracked files in `dist/` via `git ls-files --others --exclude-standard dist/`. `git diff` alone never reports a brand-new chunk, so a missing chunk would otherwise pass CI and only break at runtime on whichever platform needs it. - `yarn build` shells out to `ncc build src/main.ts -e @sentry/cli`. `@sentry/cli` is deliberately excluded from the bundle because it ships its own native binaries at runtime. - The bundle diff can be large even for small source changes (minifier + bundler reshuffles). That is expected; just verify the intended symbols are present. - Never hand-edit `dist/index.js` or any chunk. Always regenerate. ## Related files - `.github/workflows/verify-dist.yml` — the CI check this skill satisfies. - `package.json` → `scripts.build` — the canonical build command. - `src/main.ts` — the ncc entry point.
Auf GitHub ansehen