Skip to content

feat(ci): install Pi from the Kipp package's lockfile in setup-kipp - #189

Merged
pleb merged 1 commit into
mainfrom
feat/setup-kipp-pi-lockfile
Oct 7, 2026
Merged

pleb merged 1 commit into
mainfrom
feat/setup-kipp-pi-lockfile

Conversation

@pleb

@pleb pleb commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

What

  • setup-kipp now installs Pi from a lockfile that ships inside the Kipp package, instead of a global npm install of Pi from the registry. The package names that directory in kipp.piInstall.
  • A Kipp release that does not declare kipp.piInstall now fails the action. Use the Kipp release that matches the setup-kipp pin.
  • The Pi binary path is exported as KIPP_PI_BIN, and "Install Kipp into Pi" runs that binary.

Why

  • The global install pinned only Pi's own version, so its dependency tree resolved fresh on every run. The lockfile pins the whole tree.
  • The registry install is removed rather than kept as a fallback, so every run uses the pinned tree.

How

  • kipp.piInstall must be a relative path that resolves inside the package and holds a regular package.json and package-lock.json, so the manifest cannot point the install elsewhere.
  • Those two files are copied to a fresh RUNNER_TEMP directory and installed with npm ci --ignore-scripts. --min-release-age=0 stops a runner's release-age policy from refusing the locked releases.
  • The step fails unless the installed pi --version matches kipp.supportedPiVersion.
  • Installing from a lockfile removes the zizmor adhoc-packages exception this step needed before.

setup-kipp now requires kipp.piInstall in the installed Kipp manifest: a
relative subdirectory of the package holding package.json and
package-lock.json. It installs Pi from them with npm ci into a fresh
RUNNER_TEMP directory, checks the binary reports kipp.supportedPiVersion,
exports it as KIPP_PI_BIN, and installs Kipp into Pi with that binary.

The global install of Pi from the registry is removed, so a Kipp release
without kipp.piInstall fails. Use the Kipp release that matches the
setup-kipp pin.
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

🛡️ SHA Pinned Actions Report

✅ All 31 file(s) passed — actions are allowed and pinned as required.

@pleb
pleb enabled auto-merge October 7, 2026 09:40
@pleb
pleb merged commit 4c0ca4c into main Oct 7, 2026
1 check passed
@pleb
pleb deleted the feat/setup-kipp-pi-lockfile branch October 7, 2026 10:22
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.

2 participants