mirror of
https://github.com/hanzo-apps/world.git
synced 2026-10-30 14:53:09 +00:00
Root cause of the dark Sat/Terrain: no VITE_MAPBOX_TOKEN was baked at build, so the token-gated Mapbox satellite-streets-v12 / outdoors-v12 styles silently fell back to the keyless CartoDB dark basemap in both 2D and 3D. The publishable pk token now lives in KMS (hanzo/deploy/VITE_MAPBOX_TOKEN, env=prod) and is sourced by hanzoai/ci (v1.0.5) as a build_secret --build-arg into the Vite SPA. Rides the pending main fixes (analyst reasoning recovery, AI Compute rate, map-control dropdowns).
41 lines
1.6 KiB
YAML
41 lines
1.6 KiB
YAML
# Canonical CI/CD config for hanzoai/world — read by both the hanzoai/ci
|
|
# reusable workflow (.github/workflows/cicd.yml) and platform.hanzo.ai.
|
|
# One image (the Vite SPA served by hanzoai/static), and a main-branch rollout
|
|
# onto the existing `world` operator Service CR
|
|
# (universe: infra/k8s/operator/crs/world.yaml).
|
|
#
|
|
# No separate `test:` block: the Dockerfile IS the gate — `npm ci && npm run
|
|
# build` fails the image on any type error or build break, so nothing broken
|
|
# ships (same pattern as hanzoai/finance + hanzoai/console).
|
|
|
|
images:
|
|
- name: world
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
repo: ghcr.io/hanzoai/world
|
|
# Publishable Mapbox token (pk, URL-restricted to world.hanzo.ai) baked into
|
|
# the Vite SPA at build so the Satellite/Terrain basemaps load (Dark stays
|
|
# keyless CartoDB). Sourced from KMS (hanzo/deploy/VITE_MAPBOX_TOKEN,
|
|
# env=prod) by hanzoai/ci — the key name IS the build-arg. Never in git.
|
|
build_secrets:
|
|
- VITE_MAPBOX_TOKEN
|
|
|
|
# Deploy: roll the freshly-built image onto the `world` Service CR. Fires only
|
|
# on `main` (+ tags); PRs and forks build but never deploy. KMS hands back the
|
|
# kubeconfig at run time.
|
|
deploy:
|
|
cluster: do-sfo3-hanzo-k8s
|
|
namespace: hanzo
|
|
# Quoted to dodge YAML 1.1 boolean coercion of a bare `on:` key.
|
|
"on": [main]
|
|
services:
|
|
- name: world
|
|
image: world
|
|
|
|
# KMS (kms.hanzo.ai, Universal Auth) supplies the GHCR push token and the
|
|
# target kubeconfig at run time. Only KMS_CLIENT_ID/KMS_CLIENT_SECRET live in
|
|
# GitHub; everything else is fetched here.
|
|
kms:
|
|
path: /deploy
|
|
environment: prod
|