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:39:57 -07:00
co-authored by Hanzo Dev
parent 9f1db2b29e
commit 6743017522
2 changed files with 35 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: [main]
tags: ['v*']
pull_request:
workflow_dispatch:
jobs:
cicd:
uses: hanzoai/ci/.hanzo/workflows/build.yml@v1
secrets: inherit
+20
View File
@@ -0,0 +1,20 @@
# Canonical CI/CD config for hanzoai/tailwindcss-typography — read by the
# hanzoai/ci reusable workflow (.hanzo/workflows/cicd.yml) and by
# platform.hanzo.ai.
#
# LIBRARY: the `prose` plugin for Tailwind. No image, no deploy — it ships from
# a tag.
#
# The gate is the jest suite. A Tailwind plugin has no types to check and
# nothing to compile — it is a function that returns a CSS object — so the only
# way to know it still works is to run Tailwind over a fixture and diff the
# emitted CSS, which is exactly what test/ does (jest/customMatchers.js exists
# for that comparison). It goes red on a changed selector or a dropped
# modifier, which is the entire failure surface.
#
# The demo/ Next site (`npm run build`) is deliberately not in the gate: it is
# documentation, it pulls a whole React toolchain, and it can break without the
# plugin being wrong.
test:
- name: test
run: npm ci && npm test