EntwineMenu
On this page

Provider CI owns publishing

Context

Users host repositories on GitHub, GitLab, Bitbucket, or elsewhere. Each provider has a native static hosting mechanism and its own credentials. Entwine's own showcase uses Cloudflare Pages, which suits that project but not every consumer.

Decision

entwine setup generates provider-native CI once, and the provider's CI owns validation and publishing from then on. There is no entwine publish command. entwine build stays portable. Entwine's own Cloudflare deployment is kept separate from what users receive.

Why

Owning publishing would make Entwine responsible for GitHub, GitLab, and Bitbucket authentication, hosting APIs, and credential storage. Generated CI keeps secrets in the provider, is reproducible, and works for air-gapped or custom hosting through plain dist/.

Consequences

  • Generated pipelines are ordinary, editable files, and setup never overwrites existing CI.
  • Each provider's constraints are surfaced, not hidden. Bitbucket needs a manual one-time step. See deployment.
  • Generated YAML must be kept current with provider syntax.

Alternatives

A hosted or Cloudflare-by-default path was rejected as not provider-native. An entwine publish command was deferred because of the credential surface.

Generated by Entwine ยท Markdown remains the source of truth.