03 / Develop · Build · Ship

Ship ​

The last layer (the map). The calendar works — now it goes live on its own schedule.

Requirement

Calendar reaches production the day Calendar is ready — without waiting on a platform release train, and without a fix here forcing a redeploy of anything else.

Resolving it. Calendar owns its whole deployment. Its own repo, its own deploy/k8s (Kustomize base + overlays/{dev,uat,prod}), reconciled by the ApplicationSet in VENIZIA-AI/infra. Migrations run as an ArgoCD PreSync Job; UIs inject env at runtime, so one image runs everywhere. Full model in Deployment.

Promotion flows through branches and tags — prod is gated on the same commit UAT passed:

Merging to develop does not deploy anything. It runs the quality gate and pushes images tagged dev-<sha> — that's all. Dev moves when release/dev moves: ArgoCD tracks that branch with auto-sync and self-heal, and CI never touches the cluster. Forgetting the second step is the most common reason a fix "deployed" and nothing changed.

There is also no pull_request trigger — the quality gate runs on the push to develop, after the merge.

Tag formats differ per app, and the infra PR needs the right token

The go-live tag is pushed on develop and gated on UAT having passed. Its shape is the app's own choice: HRM uses a dated p-YYMMDD, the Shell a semver v1.2.0 (with v1.2.0-rc.1 for UAT). The workflow builds the images, opens a branch from the tagged commit with the prod overlay bumped, and raises a PR in VENIZIA-AI/infra pinning this app's version: — Argo syncs on merge.

That last step needs INFRA_PR_TOKEN with both Contents:write and PullRequests:write. With only the first, the branch pushes and the PR is never opened — the run looks fine and the release quietly stops one step short.

Done when — a merge to develop builds a dev-<sha> image, fast-forwarding release/dev puts it on Dev, and a go-live tag ships the exact commit UAT passed.

That's the whole build — a UI, an API, a database, rules, integration, tenancy, and a pipeline that ships them. Everything from here is your calendar.

Stuck? See Common snags, or back to Build a satellite.