Files
zeekayandHanzo Dev 206e5f205f ci: a runner label names the platform, not the org
hanzo-build-linux-amd64, lux-build-linux-amd64, zoo-build-linux-amd64 and
every other org-prefixed spelling all meant the same machine. Which org a
job belongs to does not change which host can build it, so the org bought
one pool name per org per arch and each could go stale on its own -- the
evo host alone answered to fourteen names for one label.

One vocabulary now: linux-amd64, linux-arm64, macos-arm64, win-amd64. The
generic labels every plain workflow uses (ubuntu-latest, self-hosted) are
untouched, so naive CI keeps working.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-08 12:08:01 -07:00

57 lines
1.7 KiB
YAML

name: CI
# The Go suite, on the native runners (git.hanzo.ai → git-runner).
#
# This replaces .github/workflows/ci.yml, which named `runs-on: lux-build-amd64`.
# No runner on this forge carries that label — the pools are
# `lux-build-linux-<arch>` — and a job naming a label nothing carries does not
# fail, it waits.
#
# It also absorbs what was worth absorbing from test.yml and security.yml, both
# of which are deleted. test.yml ran `go test ./pkg/lx/... || true` and then
# echoed "Test suite executed successfully" — it could not fail, so it reported
# nothing that this job's `go test ./...` does not report properly.
# security.yml's dependency-check job listed modules into a file and echoed
# "Dependencies scanned for vulnerabilities" without scanning anything; the
# govulncheck step below is what that job was pretending to be.
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
permissions:
contents: read
# A newer commit makes the older run irrelevant.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
runs-on: [linux-amd64]
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- run: go mod download
- run: go test ./...
- run: go build ./...
govulncheck:
runs-on: [linux-amd64]
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- run: go install golang.org/x/vuln/cmd/govulncheck@latest
# Advisory, into the job log. Making it blocking is a policy decision.
- run: govulncheck ./... || true