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:25:23 -07:00
co-authored by Hanzo Dev
parent db24923e99
commit 5f20136b19
2 changed files with 40 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, master]
tags: ['v*']
pull_request:
workflow_dispatch:
jobs:
cicd:
uses: hanzoai/ci/.hanzo/workflows/build.yml@v1
secrets: inherit
+25
View File
@@ -0,0 +1,25 @@
# Canonical CI/CD config for hanzoai/migrate — the one file both the hanzoai/ci
# reusable (.hanzo/workflows/cicd.yml) and platform.hanzo.ai read.
#
# A library + CLI (our golang-migrate fork), so no `images:` and no `deploy:` —
# it ships as a Go module and from a tag, and nothing here is a running service.
#
# The build carries the FULL tag matrix from the Makefile's SOURCE + DATABASE
# defaults, and that is the load-bearing part: every database and source driver
# in this repo sits behind a build tag, so a bare `go build ./...` compiles the
# core and NONE of the 20 drivers — it would stay green through a driver that
# does not compile at all. With the tags, a break in any driver is a red build.
#
# The test run is scoped to the packages that do NOT need Docker. The driver
# suites use dktesting, which starts a real database container per driver — and
# `-short` only trims them to one version each, it does not skip them, so
# `make test-short` (which also passes --ignore-errors, swallowing every
# failure) is not a gate at all. What runs here is the migrator core, the
# database/source driver contracts, the stub drivers, URL parsing and the
# file/iofs sources: real tests that fail on a real break, no daemon required.
test:
- name: build
run: |
set -e
go build -tags 'postgres mysql redshift cassandra spanner cockroachdb yugabytedb datastore mongodb sqlserver firebird neo4j pgx pgx5 rqlite file go_bindata github github_ee bitbucket aws_s3 google_cloud_storage godoc_vfs gitlab' ./...
go test -count=1 ./ ./database ./database/stub/... ./internal/url/... ./source ./source/file/... ./source/iofs/... ./source/stub/...