ci: canonical pair — hanzo.yml + forge caller

github.com has no runner for hanzo-build-linux-amd64, so a caller under
.github/workflows is a gate that can never be scheduled. This is the ~7-line
caller on the plane that can (git.hanzo.ai git-runner fleet), pinned @v1.

Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
2026-08-06 02:26:57 -07:00
co-authored by Hanzo Dev
parent f5e19b574b
commit d4be5d5b0c
2 changed files with 30 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
# Canonical caller — every knob lives in /hanzo.yml, none here.
# Runs on the git-runner fleet at git.hanzo.ai, the only pool serving these
# labels. github.com resolves only .github/workflows and has no runner for
# them, so a caller placed there is a gate that cannot be scheduled.
name: CI/CD
on:
push:
branches: [develop]
tags: ['v*']
pull_request:
workflow_dispatch:
jobs:
cicd:
uses: hanzoai/ci/.hanzo/workflows/build.yml@v1
secrets: inherit
+15
View File
@@ -0,0 +1,15 @@
# Frappe Helpdesk. The shippable artifact is the SPA in desk/ — a Vite build of
# the Vue app that the frappe app serves. That build is the gate: it fails on a
# type error, a missing import, or a broken component, which is every way this
# repo's own code breaks.
#
# No `images:` here on purpose. .hanzo/workflows/deploy.yml already builds and
# pushes ghcr.io/hanzoai/helpdesk from this same Dockerfile on this same fleet,
# on the same push to develop; declaring the image here too would build the
# whole frappe bench twice per commit.
#
# The python side is not gated: frappe's suite needs a provisioned bench with a
# live site, which is the image's job, not a runner's.
test:
- name: build
run: cd desk && yarn install --frozen-lockfile && yarn build