Files
zeekayandHanzo Dev 0252bf22bb Declare which side of this repo is the truth
The build path reads git.hanzo.ai and the human-facing home is
github.com/hanzo-rs/operator. Without a declaration platform infers the GitHub
side from the forge path, which here is hanzoai/operator — the repo this move
retires. Every build would then check its sha against a repo that is about to
stop receiving pushes, and pass, because a frozen mirror serves a green build
indistinguishable from a current one.

Named explicitly, the reachability check asks the right repo.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-29 20:59:25 -07:00

35 lines
1.7 KiB
YAML

# Platform-native CI/CD — the ONE build path for this repo.
#
# A v* git tag push → the platform GitHub App webhook → platform BuildKit builds
# ghcr.io/hanzoai/operator:<semver> in-cluster on our own pool. No GitHub
# Actions, no ARC runners, no sha-suffix drift.
#
# The image name is deliberately ghcr.io/hanzoai/operator and NOT
# ghcr.io/hanzo-rs/operator. That package is what the fleet controller runs
# today — universe pins it by digest in operator/deployment.yaml — and 189
# versions of history live there. Building into it from here moves the SOURCE to
# its language home without moving the ARTEFACT out from under a running
# cluster, which is the one part of this that cannot be rolled back.
#
# Deploy is not declared: rolling the operator is a universe change to the
# pinned tag, reviewed like any other, not something a tag push should do on its
# own. The thing being rolled is the controller that reconciles the fleet.
#
# The build path reads git.hanzo.ai; the human-facing home is
# github.com/hanzo-rs/operator. Declared rather than inferred because the two
# names differ: the forge repo is hanzoai/operator, so inference would look for
# github.com/hanzoai/operator and find the repo this move is retiring. Every
# build then asks whether its sha is reachable on the side named here, which is
# what catches a forge that has stopped following and is quietly serving a
# frozen tree.
source: hanzo-rs/operator
# Schema: hanzoai/platform docs/PLATFORM_CI.md (parsed by platform-config.ts).
build:
matrix:
- { os: linux, arch: amd64 } # amd64-only — DOKS has no arm64 pool yet
dockerfile: ./Dockerfile
context: .
image: ghcr.io/hanzoai/operator
tag-pattern: "{{git.tag}}" # vX.Y.Z git tag → X.Y.Z image