Files
chains/.hanzo/workflows/slot.yml
zeekayandHanzo Dev f13260c45d 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:06 -07:00

39 lines
1.1 KiB
YAML

name: slot
# Which VM plugin slots this module may claim.
#
# luxd loads a VM by executing the binary at <PluginDir>/<VMID>, so a slot admits
# exactly one artifact and the VMID alone decides which chain a binary drives. Two
# artifacts built for one slot is a coin flip settled by whichever image wrote the
# file last, and the losing case reads as a healthy node that answers nothing.
#
# This runs unfiltered, on every push. A path filter would scope it to the files
# that are already clean and miss the case it exists to catch: a NEW package
# claiming a slot that is already filled.
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
slot:
runs-on: [linux-amd64]
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: false
- run: CGO_ENABLED=0 go test -count=1 -race=false ./internal/slot/