Publish & Docker

The TypeScript extension contributes TypeScript-specific release artifacts. Publishing itself is provided by @putnami/ci, but the TypeScript extension controls the package and Docker shape.

Publish channels

Enable channels in project config:

{
  "publish": ["npm", "archives"]
}

Common commands:

putnami build .
putnami publish .

putnami build .
putnami publish . --stable

Options include:

  • --stable to publish the stable version
  • --dist-tag <tag>
  • --also-branch-tag
  • --access <public|restricted>
  • --registry <url>
  • --dry-run

Docker

When the docker publish channel is enabled, the extension generates a Dockerfile based on oven/bun:slim and copies the pre-compiled standalone bundle into the container.

{
  "publish": ["npm", "docker"]
}
putnami build my-app --compile
putnami publish my-app --docker-registry ghcr.io/myorg

Docker options:

  • --docker-registry <registry>
  • --docker-tag <tag>
  • --platform <platform>
  • --port <number>
  • --stable

Stable and pre-release versions

Build output uses the workspace version. Pre-release builds receive a deterministic suffix derived from source content. Stable publishing strips that suffix and tags the stable artifact.