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:31:33 -07:00
co-authored by Hanzo Dev
parent d65a80ac74
commit d64131dced
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: [main]
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 @@
# Discourse-derived forum. Ruby app + Ember front end; the deployable artifact is
# built elsewhere, so this repo's push gate is a parse gate.
#
# Gate: every tracked Ruby file parses. `ruby -c` is the real compiler front end,
# so a syntax error, an unbalanced block or a bad heredoc fails here. The rspec
# suites need Postgres and Redis and the Ember build needs a full pnpm install of
# a monorepo this size — both are harnesses, not push gates.
test:
- name: ruby-parse
run: |
set -euo pipefail
n=0
while IFS= read -r f; do
ruby -c "$f" > /dev/null
n=$((n + 1))
done < <(git ls-files '*.rb' 'Rakefile' 'Gemfile' 'config.ru')
echo "$n ruby files parse"
[ "$n" -gt 100 ]