diff --git a/.github/workflows/build-lux-kms.yml b/.github/workflows/build-lux-kms.yml new file mode 100644 index 000000000..c81be26f1 --- /dev/null +++ b/.github/workflows/build-lux-kms.yml @@ -0,0 +1,89 @@ +name: Build KMS + +# RESTORED. This was deleted in efed0f0 in favour of platform.hanzo.ai's native +# build plane (see hanzo.yml), which left kms the ONE repo in the fleet that +# could not build at all: the platform Deployment is scaled to 0/0 and +# PLATFORM_BUILD_CALLBACK_TOKEN — the bearer POST /v1/runner requires — is in +# neither cluster. Meanwhile every sibling still builds here (luxfi/node has 19 +# active workflows, hanzoai/gateway 3, hanzoai/commerce 1). Cutting one repo over +# ahead of the others bought inconsistency and no builds. +# +# hanzo.yml stays as the declaration of intent. Delete THIS file when the native +# plane actually serves — and do it fleet-wide, not one repo at a time. +# +# Note: push-triggered runs stopped firing across these repos around 2026-07-24; +# dispatch explicitly (`gh workflow run build-lux-kms.yml --ref `), and note +# that the hanzo-dev account gets 422 "Actions has been disabled for this user" +# while zeekay does not. +# +# Self-contained — calling hanzoai/.github/.github/workflows/docker-build.yml@main +# via `secrets: inherit` triggers a cross-org startup_failure (organization +# secrets aren't inherited across orgs even with `inherit`). Same pattern +# already used by build-server-self.yml. + +on: + push: + branches: [main] + tags: ['v*'] + workflow_dispatch: + +permissions: + contents: read + packages: write + +jobs: + build: + runs-on: lux-build + timeout-minutes: 45 + steps: + - uses: actions/checkout@v4 + + - name: Compute tags + id: meta + run: | + if [[ "$GITHUB_REF" == refs/tags/v* ]]; then + VERSION="${GITHUB_REF#refs/tags/v}" + { + echo "tags<> "$GITHUB_OUTPUT" + else + { + echo "tags<> "$GITHUB_OUTPUT" + fi + + - name: Login to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build and push (linux/amd64, with embedded SPA) + uses: docker/build-push-action@v6 + with: + context: . + file: Dockerfile + platforms: linux/amd64 + build-args: | + GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} + push: true + tags: ${{ steps.meta.outputs.tags }} + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Summary + run: | + echo "### Build complete" >> "$GITHUB_STEP_SUMMARY" + echo '```' >> "$GITHUB_STEP_SUMMARY" + echo '${{ steps.meta.outputs.tags }}' >> "$GITHUB_STEP_SUMMARY" + echo '```' >> "$GITHUB_STEP_SUMMARY" diff --git a/hanzo.yml b/hanzo.yml index 47b484cd6..71f15c0e8 100644 --- a/hanzo.yml +++ b/hanzo.yml @@ -2,10 +2,19 @@ # file, schedules the image build onto the self-hosted arcd pools over the # native long-poll fabric, and pushes to GHCR — no GitHub-Actions hop. # -# This repo previously built through .github/workflows/build-lux-kms.yml. That -# path is dead: GitHub answers a workflow dispatch with 422 "Actions has been -# disabled for this user", so pushes produced no build at all and the deployed -# image silently drifted behind main. +# STATUS: declaration of intent, NOT the live path. The build that actually runs +# today is .github/workflows/build-lux-kms.yml, restored after this file briefly +# replaced it — the native plane is not serving yet (the platform Deployment is +# scaled to 0/0 and PLATFORM_BUILD_CALLBACK_TOKEN, the bearer POST /v1/runner +# needs, is in neither cluster), so cutting over left kms unable to build at all. +# +# The 422 "Actions has been disabled for this user" that motivated the cutover is +# ACCOUNT-scoped, not repo-scoped: the hanzo-dev account gets it, the zeekay +# account dispatches fine. Push-triggered runs did stop firing around 2026-07-24, +# so builds need an explicit dispatch either way. +# +# Switch to this path when the native plane serves, and do it for the whole fleet +# at once — every sibling repo still builds on Actions. # # Schema: ~/work/hanzo/platform/docs/PLATFORM_CI.md §hanzo.yml. build: