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:37:56 -07:00
co-authored by Hanzo Dev
parent 6b6df6494c
commit 7fc0117f4f
2 changed files with 33 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: [master]
tags: ['v*']
pull_request:
workflow_dispatch:
jobs:
cicd:
uses: hanzoai/ci/.hanzo/workflows/build.yml@v1
secrets: inherit
+18
View File
@@ -0,0 +1,18 @@
# Canonical CI/CD config for hanzoai/expr — read by the hanzoai/ci reusable
# workflow (.hanzo/workflows/cicd.yml) and by platform.hanzo.ai.
#
# LIBRARY: the expr expression language, a pure Go module. No image, no deploy.
#
# `go test ./...`, deliberately NOT `go build ./...`. Two reasons, and the second
# is the interesting one:
# - This is a compiler + VM. Its correctness lives entirely in the suite
# (parser, checker, optimizer, vm); a compile-only gate proves nothing about
# whether an expression still evaluates to the right answer.
# - `go build ./...` FAILS here on a healthy tree: test/examples is
# `package main` whose only content is a _test.go, so the linker reports
# "function main is undeclared in the main package". `go test` builds that
# package the way it is meant to be built. A gate that is red on a green
# repo teaches everyone to ignore it.
test:
- name: test
run: go test ./...