Files
zeekayandHanzo Dev 5707259d55 Publish where the build door accepts the push
The executor takes an owned registry and answers 403 for any other host, so
the declared repo published nowhere: every build died before its first layer.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-08 12:18:44 -07:00

35 lines
1.6 KiB
YAML

# CI/CD config for hanzoai/team, read by the hanzoai/ci reusable workflow
# (.hanzo/workflows/cicd.yml) and by platform.hanzo.ai. One image: the root
# Dockerfile builds the web app and the server from this tree and assembles the
# runtime layout the binary looks for. hanzo.team runs it from a values file in
# hanzoai/universe.
#
# No deploy: here. cd.hanzo.ai runs with selfHeal, so a tag written anywhere but
# the universe pin is restored away on the next poll; recording it there is the
# only durable path.
#
# The build door takes an owned registry -- ghcr.io/{hanzoai,luxfi,zooai} -- and
# answers 403 for any other host, so the image name is where the org already
# keeps its packages.
images:
- name: server
context: .
dockerfile: Dockerfile
repo: ghcr.io/hanzoai/team
# ARG BUILD_NUMBER is ldflagged into model.BuildNumber and reported on
# /v1/workspace/config/client. Unpassed it stays 'dev', and a rollout then
# has no answer to which build is serving. hanzoai/ci substitutes
# ${VERSION} from the tag it builds.
args:
BUILD_NUMBER: '${VERSION}'
# The Go and web app compiles both happen inside the Dockerfile, so a broken
# tree already fails the image build. This gate covers the two things the image
# build cannot catch, because both are behaviour rather than compilation: the
# claim mapping that decides who a signing-in user is, and the tenant boundary
# that decides which team they land in. Getting either wrong puts a user in
# another org's channels.
test:
- name: iam-provider
run: cd server && go test ./channels/app/oauthproviders/hanzo/...