Skip to content

Add GitHub Actions release process and publish metadata - #46

Open
mikelittle wants to merge 2 commits into
mainfrom
add-release-process
Open

Add GitHub Actions release process and publish metadata#46
mikelittle wants to merge 2 commits into
mainfrom
add-release-process

Conversation

@mikelittle

Copy link
Copy Markdown
Contributor

Closes humanmade/product-dev#2158.

altis-cli had no release process — no workflows, no tags, and the last npm
publish was manual ~3 years ago. This wires up:

  • Release workflow — publishes to npm on a GitHub Release, gated on
    tag==package.json version, a CLI smoke test, and an advisory npm audit.
    Uses provenance (OIDC).
  • CI workflow — install + smoke test on PRs and pushes to main.
  • package.json — description (drives the npmjs listing), license, repository/
    homepage/bugs, engines (node >=20, required by got@14), keywords, smoke script.
  • RELEASING.md — SemVer guidance + the npm version → tag → GitHub Release flow.
  • README — removed the HM ASCII logo, bumped Node 18→20.

Before the first release works, a human must:

  • Add an NPM_TOKEN repo secret (npm automation token, write scope on altis-cli).
  • Cut a release: npm version <patch|minor|major>git push --follow-tags
    publish a GitHub Release.

Verified locally: workflows pass action-validator, smoke test exits 0, version
gate passes/fails correctly, and npm publish --dry-run produces a clean,
warning-free tarball (bin/ + lib/ only).

🤖 Generated with Claude Code

mikelittle and others added 2 commits August 6, 2026 14:29
altis-cli had no release process — the last npm publish was manual, ~3 years
ago. This adds a Release workflow that publishes to npm on a GitHub Release
(gated on tag==package.json version, a CLI smoke test, and an advisory audit),
plus PR CI. package.json gains the metadata npm needs for a clean, provenanced
publish and an accurate npmjs listing. Process and SemVer guidance live in
RELEASING.md.

Publishing still needs a human to add the NPM_TOKEN secret and cut the first
release. Closes humanmade/product-dev#2158.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The smoke test ran the CLI entry point, which loads config and runs the
setup gate before parsing args — so an unconfigured non-TTY exits 1. Build
the parser directly instead: still exercises the whole command tree via
dynamic imports, without needing config.

Entry-point gate fix tracked in #47.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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