Skip to content

ci: wire apps-package-check publish-hygiene gate into CI - #66

Draft
MaximusHaximus wants to merge 1 commit into
mainfrom
feat/wire-apps-package-check
Draft

ci: wire apps-package-check publish-hygiene gate into CI#66
MaximusHaximus wants to merge 1 commit into
mainfrom
feat/wire-apps-package-check

Conversation

@MaximusHaximus

Copy link
Copy Markdown
Collaborator

Why

Nothing in CI looks at the packed artifact today — a package whose exports/types point at unpacked files, or whose files set drops CHANGELOG.md/MIGRATION.md, still goes green. The new shared apps-package-check.yml workflow in 0xPolygon/pipelines (companion PR: 0xPolygon/pipelines#54) closes that gap with publint, and this template is the canonical example of how a consuming repo wires it.

What changed

  • .github/workflows/ci-trigger.yml: new package-check job — uses: 0xPolygon/pipelines/.github/workflows/apps-package-check.yml@main, mirroring how drift-check references apps-codegen-drift-check.yml (thin one-line trigger, contents: read already covers the called workflow's scopes).
  • packages/example-db/package.json: "check:package": "publint" script + publint@^0.3.21 devDependency. example-db is the one package modelling the published-library shape (publishConfig, files, prepublishOnly); the other examples define no check:package, so the workflow's --if-present skips them.
  • pnpm-lock.yaml: lockfile update for publint.
  • Empty changeset: CI/tooling config only, nothing shippable.

Verification

From a fresh checkout of this branch, pnpm run --if-present build then pnpm -r --include-workspace-root run --if-present check:package pass; publint packs example-db and reports no errors (one non-blocking suggestion about repository.url formatting).

Merge ordering

The pipelines PR (0xPolygon/pipelines#54) merges first — this trigger references the shared workflow @main, so the package-check job here goes green only after it lands.

https://claude.ai/code/session_01BNdm93FPjkK8G7NmuTEbXD

Add a package-check job to ci-trigger.yml calling the new shared
apps-package-check.yml reusable workflow (publish-artifact hygiene via
publint), and make example-db — the package modelling the
published-library shape — the canonical consumer with a
"check:package": "publint" script.

The gate validates the packed tarball (exports/types/files resolution),
which build/test/lint cannot see. Non-publishable packages define no
check:package script; --if-present skips them.

Claude-Session: https://claude.ai/code/session_01BNdm93FPjkK8G7NmuTEbXD
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant