Files

32 lines
1.2 KiB
YAML

# Canonical CI/CD config for gallery.hanzo.ai — the one file the hanzoai/ci
# reusable (.github/workflows/cicd.yml) reads.
#
# It runs on the forge pull mirror git.hanzo.ai/hanzo-inc/gallery, whose org
# holds the KMS identity, so this repository carries no key. GitHub Actions is
# off here: one publisher.
#
# The gate is the full static export, which is unusually complete here because
# the site is GENERATED: `prebuild` runs scripts/gen-templates-json.mjs, and
# `next build` with output:export then renders every template page from that
# JSON. A template that no longer parses, a route that cannot be statically
# rendered, or a generator that writes malformed JSON all fail the build —
# none of them are visible from a typecheck alone, which is why tsc runs first
# but not instead.
test:
- name: build
run: |
set -e
pnpm install --frozen-lockfile
npx tsc --noEmit
pnpm build
# The export is bytes: out/ published to s3://hanzo-sites/hanzo/gallery, which
# the gallery.hanzo.ai router serves with no pod. The publish job is a fresh
# runner that ran none of the gates above, so the build installs its own
# dependencies.
site:
slug: gallery
dir: out
build: pnpm install --frozen-lockfile && pnpm build
on: [main]