Skip to main content

verify-dist

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

Informations de source

Dépôt
getsentry/action-release
Dernière activité de la source
28 août 2026 à 12:10
Langue détectée de SKILL.md
anglais
Étoiles
494
Forks
64

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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.
Voir sur GitHub