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:27:51 -07:00
co-authored by Hanzo Dev
parent 298d7fd328
commit 68f580196e
2 changed files with 34 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
+19
View File
@@ -0,0 +1,19 @@
# Canonical CI/CD config for hanzoai/better-sqlite3 — read by hanzoai/ci (via
# .hanzo/workflows/cicd.yml) and by platform.hanzo.ai.
#
# Native npm addon. The gate is the whole thing end to end: compile the bundled
# SQLite amalgamation and the C++ binding with node-gyp, then run the mocha
# suite against the binary that was just built. For an addon, a build that
# compiles but returns wrong rows is the failure that matters, so the suite has
# to run against the fresh binding, not a prebuild.
#
# g++/make/python3 are provisioned by the gate itself — the runner image carries
# no C toolchain unless the repo has a go.mod, and node-gyp cannot run without
# one. No lockfile is committed here, so `npm install`.
test:
- name: build-and-unit
run: |
command -v g++ >/dev/null 2>&1 || { sudo apt-get update -qq && sudo apt-get install -y -qq g++ make python3; }
npm install --no-audit --no-fund
npm run build-release
npm test