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:40 -07:00
co-authored by Hanzo Dev
parent 6575ca559b
commit 504748f06a
2 changed files with 42 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
+27
View File
@@ -0,0 +1,27 @@
# Canonical CI/CD config for hanzoai/sentinel — the one file both the hanzoai/ci
# reusable (.hanzo/workflows/cicd.yml) and platform.hanzo.ai read.
#
# No `images:`: the only Dockerfile in the tree is self-hosted/, which packages a
# release that already exists rather than building this source, and nothing here
# is deployed from a push.
#
# The gate is the frontend type check — `make test-js-build`'s first half. It is
# the largest gate in this repo that needs NOTHING but the checkout: tsc over the
# whole static/app tree fails on any type error, and unlike the Python suites it
# does not want postgres, redis, kafka, snuba, symbolicator or a devservices
# stack, none of which this fleet runs. The webpack half of that target is
# omitted on purpose: it produces a stats artifact nobody here reads, and its
# failures are bundler failures, not code failures.
#
# What is deliberately NOT claimed: this does not run the Python test suite or
# the jest suite. `make test-tools` would be the cheap Python candidate and it
# points at tests/tools, a directory this fork does not have — it would fail as
# "no tests ran", which is a red gate that says nothing about the code. When the
# service-backed suites get a devservices lane on this fleet, they belong here as
# a second entry; until then this file claims exactly what it runs.
test:
- name: build
run: |
set -e
yarn install --frozen-lockfile
yarn tsc -p config/tsconfig.build.json