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:38:33 -07:00
co-authored by Hanzo Dev
parent c429ae4c51
commit 4ca3a97aa6
2 changed files with 50 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
+35
View File
@@ -0,0 +1,35 @@
# hanzoai/dev — the `dev` CLI (Rust workspace under code-rs/: core, tui, exec,
# app-server, mcp client/server, and ~30 more crates).
#
# Gate only. This repo ships signed per-platform binaries and an npm wrapper
# from .github/workflows/release.yml; there is no image and nothing to deploy.
#
# THE GATE IS THE COMPILE, because for this repo nothing else is. There is no
# meaningful lint-only proxy: the workspace is where the product lives, and a
# type error in core/ is invisible to the root `prettier --check *.json *.md`
# that is the only thing package.json offers.
#
# `cargo check`, not `cargo build`: it runs the full front end of the compiler
# over every crate in the workspace — resolution, typeck, borrowck — and skips
# only codegen and linking. That catches every break a `build` would, at roughly
# a third of the cost, on a fleet of ten shared runners.
#
# --locked so Cargo.lock is a fact rather than a suggestion: an out-of-date lock
# fails here instead of silently resolving to versions no release will ever use.
#
# The toolchain is installed by this gate. hanzoai/ci provisions Rust only when
# a Cargo.toml sits at the repo ROOT, and this workspace lives one directory
# down — so without these three lines the gate dies at `cargo: command not
# found` (exit 127) and never reads a single crate. --default-toolchain none
# leaves the choice to code-rs/rust-toolchain.toml, which pins 1.90.0.
test:
- name: cargo-check
run: |
set -euo pipefail
if ! command -v cargo >/dev/null 2>&1; then
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
| sh -s -- -y --profile minimal --default-toolchain none
fi
export PATH="$HOME/.cargo/bin:$PATH"
cd code-rs
cargo check --workspace --locked