Skip to main content

verify-dist

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

Datos de origen

Repositorio
getsentry/action-release
Última actividad en el origen
28 de agosto de 2026 a las 12:10
Idioma detectado de SKILL.md
inglés
Estrellas
494
Forks
65

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
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.
Ver en GitHub