mirror of
https://github.com/hanzoai/marketing.git
synced 2026-10-17 11:18:15 +00:00
The marketing Deployment is a SPA server over this repo's dist and nothing else: no SPA_* config, no API of its own (that is api.hanzo.ai). So the export is published to the Sites plane as `marketing`, s3://hanzo-sites/hanzo/marketing, for the edge to serve with no pod. The build gate already produces dist in the same job, so the lane names no build of its own. Checked in headless Chromium: the export on marketing.hanzo.ai renders what the pod renders. Co-authored-by: Hanzo Dev <[email protected]>
37 lines
1.1 KiB
YAML
37 lines
1.1 KiB
YAML
# Hanzo CI/CD — marketing web UI. .github/workflows/cicd.yml is triggers and an
|
|
# import of hanzoai/ci; everything else is here.
|
|
|
|
test:
|
|
# Frozen, so the check resolves the tree the Dockerfile does.
|
|
- name: install
|
|
run: |
|
|
set -e
|
|
corepack enable
|
|
pnpm install --frozen-lockfile
|
|
|
|
# The image's build line, run first. A vite build that emits nothing still
|
|
# exits 0, hence the file tests.
|
|
- name: build
|
|
run: |
|
|
set -e
|
|
pnpm build
|
|
test -s dist/index.html
|
|
test -d dist/assets
|
|
|
|
images:
|
|
- name: marketing
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
repo: ghcr.io/hanzoai/marketing
|
|
# No platforms line: ghcr.io/hanzoai/spa is multi-arch, so both build.
|
|
# No build secrets: the bearer is minted by hanzo.id at sign-in.
|
|
|
|
# marketing.hanzo.ai is bytes: the export is the whole product and its API is
|
|
# api.hanzo.ai. The site lane publishes the `build` gate's dist to
|
|
# s3://hanzo-sites/hanzo/marketing, where the edge serves it with no pod. The image
|
|
# lane above goes when the marketing Deployment does.
|
|
site:
|
|
slug: marketing
|
|
dir: dist
|
|
on: [main]
|