`ct list-changed` diffs against ct 2.3.1's default target branch, master, which
this repo does not have — git exits 128 and the step takes the job with it. It
set `steps.list-changed.outputs.changed`, and no step references it: the two
that follow are `ct lint --all` and `ct install --all`, already scoped by
--chart-dirs. So the step's only effect was to fail.
`branches: [master]` came across from .github/workflows; this repo's default
branch is main, so the lane has never produced a run. `runs-on: ubuntu-latest`
is the second half of the same problem — this fleet declares no ubuntu-* label
on purpose, and an unmatched label does not fail, it queues until the timeout.
workflow_dispatch so a lane gated behind a paths filter can be exercised without
touching the chart.
All three came across from .github/workflows unadapted, and all three ask for
`runs-on: ubuntu-latest`, which this fleet declares no label for on purpose — an
unmatched label does not fail, it queues until the job timeout. Two of them also
trigger on `branches: [master]`, a branch this repo does not have, so they have
never produced a single run.
helm_ci lints and installs the chart, which is real coverage and portable: it now
fires on main and asks for hanzo-build-linux-amd64, plus workflow_dispatch so the
lane behind a paths filter can be exercised on demand.
integration_test's unit-test job is `go vet ./...` + `go test ./...`, which is
already what hanzo.yml's `test:` block runs on every push — the same assertion
written twice. Its integration job needs sudo, a kind cluster and a real CSI
mount, none of which a job container here provides; those tests run nowhere today
and deleting the file says so instead of implying otherwise.
helm_release publishes through three GitHub-only surfaces — a `release:
published` event the forge never emits, a GitHub `environment:` protection, and
stefanprodan/helm-gh-pages. Our charts are served from oci.hanzo.ai/charts.
This repo had seven GitHub workflows. Three of them -- dev.yaml, release.yaml
and versioned_release.yaml -- built THE SAME two images, ghcr.io/hanzoai/s3-csi
and ghcr.io/hanzoai/s3-mount. Three builders on one commit is three chances to
publish something nobody asked for, and no single place that says what this repo
produces.
Now there is one: the repo-root hanzo.yml, which platform.hanzo.ai reads and the
hanzoai/ci reusable gates from, exactly as hanzoai/cloud does it.
.github/workflows is gone entirely. The pipelines that carry their own weight --
the kind integration suite and the two helm chart jobs -- moved to
.hanzo/workflows unchanged; they keep runs-on: ubuntu-latest because our
git-runner registers that label itself
(ubuntu-latest:docker://catthehacker/ubuntu:act-24.04), so the same line now
means our runner instead of GitHub's. prepare_release.yaml is dropped: bumping a
dependency and cutting a tag is the platform's job, not a workflow's.
Co-authored-by: hanzo-dev <[email protected]>