mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
ci: lux-only build — never push other-brand images to luxfi org
Per registry-separation rule (CLAUDE.md "Container Registries — NEVER MIX"), luxfi/explore must only push the Lux brand. Other-brand images (hanzoai/explore, zooai/explore, etc.) build from each brand's own org repo, never from this one. The source still supports white-label brand selection at runtime (lib/white-label.ts inspects hostname or NEXT_PUBLIC_BRAND), so a single Lux image can serve any brand at deploy time. Build-time brand baking is reserved for per-org image variants — out of scope here. Also drops the Lux-only frontend rollout list down to mainnet/testnet/ devnet — non-Lux deployments live in their own clusters.
This commit is contained in:
@@ -1,5 +1,12 @@
|
||||
name: Build and Deploy LUX Explorer
|
||||
|
||||
# Builds the Lux-branded explorer image only. The source supports
|
||||
# white-label brand selection at runtime (lib/white-label.ts inspects
|
||||
# hostname or NEXT_PUBLIC_BRAND), so a single image serves any brand
|
||||
# at deploy time. Per-brand images for hanzo / zoo / pars are built
|
||||
# from each brand's own org repo (ghcr.io/hanzoai, ghcr.io/zooai, …) —
|
||||
# never from this repo.
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
@@ -22,28 +29,12 @@ concurrency:
|
||||
env:
|
||||
REGISTRY: ghcr.io
|
||||
|
||||
# Single-arch (amd64) build — luxfi org's native ARC pool currently only
|
||||
# provisions lux-build-linux-amd64. arm64 native runner is pending; the
|
||||
# matrix below adds it back as soon as the scale-set is online.
|
||||
jobs:
|
||||
build:
|
||||
name: Build ${{ matrix.brand }}
|
||||
runs-on: lux-build-linux-amd64
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- brand: lux
|
||||
image: luxfi/explore
|
||||
- brand: hanzo
|
||||
image: luxfi/explore-hanzo
|
||||
- brand: zoo
|
||||
image: luxfi/explore-zoo
|
||||
- brand: pars
|
||||
image: luxfi/explore-pars
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
@@ -62,7 +53,7 @@ jobs:
|
||||
id: meta
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: ${{ env.REGISTRY }}/${{ matrix.image }}
|
||||
images: ${{ env.REGISTRY }}/luxfi/explore
|
||||
flavor: |
|
||||
latest=auto
|
||||
tags: |
|
||||
@@ -77,14 +68,14 @@ jobs:
|
||||
platforms: linux/amd64
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
cache-from: type=gha,scope=${{ matrix.brand }}
|
||||
cache-to: type=gha,mode=max,scope=${{ matrix.brand }}
|
||||
cache-from: type=gha,scope=lux
|
||||
cache-to: type=gha,mode=max,scope=lux
|
||||
provenance: false
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
build-args: |
|
||||
GIT_COMMIT_SHA=${{ github.sha }}
|
||||
GIT_TAG=${{ github.ref_type == 'tag' && github.ref_name || '' }}
|
||||
NEXT_PUBLIC_BRAND=${{ matrix.brand }}
|
||||
NEXT_PUBLIC_BRAND=lux
|
||||
|
||||
deploy:
|
||||
needs: build
|
||||
@@ -153,10 +144,7 @@ jobs:
|
||||
kubectl apply -f deploy/k8s/frontend-testnet.yaml -n lux-testnet || true
|
||||
kubectl apply -f deploy/k8s/frontend-devnet.yaml -n lux-devnet || true
|
||||
|
||||
for dep in lux-frontend-mainnet lux-frontend-zoo lux-frontend-hanzo lux-frontend-spc lux-frontend-pars; do
|
||||
kubectl rollout restart deployment/$dep -n lux-mainnet || true
|
||||
done
|
||||
|
||||
kubectl rollout restart deployment/lux-frontend-mainnet -n lux-mainnet || true
|
||||
kubectl rollout restart deployment/lux-frontend-testnet -n lux-testnet || true
|
||||
kubectl rollout restart deployment/lux-frontend-devnet -n lux-devnet || true
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"words": [
|
||||
"aatx",
|
||||
"hanzoai",
|
||||
"zooai",
|
||||
"abfnrtv",
|
||||
"abitype",
|
||||
"AIVM",
|
||||
|
||||
Reference in New Issue
Block a user