Skip to content

feat(updates): add container release mode support - #691

Open
chbndrhnns wants to merge 1 commit into
oblien:mainfrom
chbndrhnns:feat/container-release-mode
Open

feat(updates): add container release mode support#691
chbndrhnns wants to merge 1 commit into
oblien:mainfrom
chbndrhnns:feat/container-release-mode

Conversation

@chbndrhnns

@chbndrhnns chbndrhnns commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Extends OpenShip's release drift and deployment engines to support container image release tracking for projects that consume prebuilt Docker images from upstream GitHub releases (e.g. ghcr.io/org/repo:tag).

Fixes #694

Details

  • ReleaseSource & Image Templating:
    • Added optional imageTemplate to ReleaseSource interface and schema.
    • Added renderImageTemplate(template, { version, tag? }) in @repo/core to substitute {version} / {tag} placeholders, or update the image tag portion when no placeholders are present.
  • Drift Evaluation (apps/api):
    • Enabled "release" drift mode when isReleaseProvider(p.gitProvider) || Boolean(p.releaseSource).
    • Added cache key tracking for imageTemplate so template updates invalidate cached drift.
    • Added fallback version resolution from deployed image tags or branches when deployment.releaseVersion is unset.
  • Build & Deploy Pipeline (apps/api):
    • In applyReleaseSourceToSnapshot, detects container release mode (source.imageTemplate, snapshot.buildImage without tarball templates, sourceKind === "image", or buildKind === "prebuilt"), renders the target image ref, sets snapshot.buildImage and snapshot.releaseVersion, and skips tarball dist downloads.
    • In preflight.ts, allows container release deployments to pass without requiring a repository URL or local directory.
  • Testing:
    • Unit tests for image template rendering and placeholder validation in packages/core/test/project-source.test.ts.
    • Unit tests for release drift evaluation in apps/api/test/modules/updates/drift-evaluation.test.ts.
    • Unit tests for container release snapshot resolution in apps/api/test/modules/deployments/container-release-deploy.test.ts.

- add imageTemplate to ReleaseSource schema and renderImageTemplate helper
- support release drift evaluation for projects with releaseSource or container images
- support container release deployments in applyReleaseSourceToSnapshot without requiring tarball dists
- add unit tests for image template rendering, container release drift, and deployment snapshot handling
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.

Support release mode and update tracking for container image projects

1 participant