mirror of
https://github.com/hanzoai/dev.git
synced 2026-10-17 15:34:54 +00:00
The GitHub Actions lane was dropped and nothing replaced it, so v0.6.95 was
tagged and never published; npm and every installer still hand out 0.6.94.
The reason given — no runner for four of the five targets — is not true of a
Mac: it builds darwin natively, both linux-musl through cargo-zigbuild and
windows-msvc through cargo-xwin, all verified from this machine. So the
release is .hanzo/workflows/release.yml on the dbc-metal host runner, one
job, every push to main: build, GitHub Release + forge release, npm, Homebrew,
then the bump commit and tag. hanzo_identity guards the new file.
Two things found while proving it end to end:
- `dev login` on the Hanzo path died on a Cloudflare 502 page mid-poll —
"unexpected token response: <!DOCTYPE html>". A body that is not an OAuth
error is the edge, not the issuer; keep polling and let the device code's
lifetime end it.
- The troubleshooting link in agent_tool still pointed at just-every/code.
Merges the forge's 0faa6fe so both remotes share one history; the blob-size
gate it ported into hanzo.yml stays.
Co-authored-by: Hanzo Dev <[email protected]>
61 lines
2.9 KiB
YAML
61 lines
2.9 KiB
YAML
# hanzoai/dev — the `dev` CLI (Rust workspace under code-rs/: core, tui, exec,
|
|
# app-server, mcp client/server, and ~30 more crates).
|
|
#
|
|
# Gate only: no image, nothing to deploy. The release — five per-platform
|
|
# binaries, npm, Homebrew — is .hanzo/workflows/release.yml, one job on the
|
|
# macOS host runner.
|
|
#
|
|
# 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:
|
|
# Cheap, and first, so a 300 KB blob fails in seconds rather than after the
|
|
# workspace compiles. This is .github/workflows/blob-size-policy.yml, which
|
|
# the fork added deliberately and which the canonical lane would otherwise
|
|
# have dropped on the floor.
|
|
#
|
|
# The base is computed here instead of read from a PR event: the old workflow
|
|
# took HEAD^1/HEAD^2 off GitHub's synthetic merge commit, which only exists
|
|
# for a pull_request run. merge-base against origin/main is the same question
|
|
# asked in a way that has an answer on a push too — where it resolves to HEAD
|
|
# and the check is a no-op, which is correct, since main's blobs already
|
|
# passed on the way in.
|
|
#
|
|
# The allowlist lives at .github/blob-size-allowlist.txt and stays there;
|
|
# only .github/workflows went away.
|
|
- name: blob-size
|
|
run: |
|
|
set -euo pipefail
|
|
git fetch --quiet --unshallow origin main 2>/dev/null || git fetch --quiet origin main
|
|
base=$(git merge-base origin/main HEAD)
|
|
python3 scripts/check_blob_size.py \
|
|
--base "$base" --head HEAD \
|
|
--max-bytes 512000 \
|
|
--allowlist .github/blob-size-allowlist.txt
|
|
|
|
- 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
|