Files
zeekayandHanzo Dev a17cdc8ad7 The image job asked for a runner that does not exist
runs-on named zoo-linux-amd64. No runner advertises that label — RUNNERS.md in
hanzoai/.github registers the pool as {zoo,pars,zen}-build-linux-amd64 — so
every run since this workflow landed has sat queued, which reads as CI that has
not got round to you rather than as CI that never will.

luxfi/vote carried the same mistake with the lux spelling and had published no
image for three days while commits landed daily.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-02 00:32:53 -07:00

82 lines
2.6 KiB
YAML

name: Image
# zoo.vote.
#
# The interface is luxfi/vote. This checks that source out, builds it with
# VITE_VOTE_HOME=zoo, and publishes ghcr.io/zooai/vote — Zoo images in Zoo's
# registry, so an org losing access cannot strand another org's deploy.
on:
workflow_dispatch:
push:
branches: [main]
# The source lives elsewhere, so a commit here is not the only reason to
# rebuild. Daily picks up a luxfi/vote change without anyone remembering to
# press the button.
schedule:
- cron: '17 6 * * *'
permissions:
contents: read
packages: write
jobs:
build:
# zoo-build-linux-amd64, not zoo-linux-amd64: the second is not a label any
# runner advertises (hanzoai/.github RUNNERS.md registers the pool as
# {zoo,pars,zen}-build-linux-amd64), so a job asking for it queues forever
# while looking like CI that has not got round to it.
runs-on: [zoo-build-linux-amd64]
steps:
- name: Check out the interface
uses: actions/checkout@v4
with:
repository: luxfi/vote
ref: main
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver: docker-container
driver-opts: |
network=host
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GH_TOKEN != '' && secrets.GH_TOKEN || secrets.GITHUB_TOKEN }}
- name: Image metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/zooai/vote
# No floating tag. A cluster pins a version; `latest` on a registry is
# a moving target that makes "what is deployed" unanswerable.
flavor: |
latest=false
# The sha is luxfi/vote's, because that is what was built. A tag naming
# this repository's sha would say nothing about the source.
tags: |
type=sha,format=short,prefix=zoo-
- name: Build & push
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile
platforms: linux/amd64
push: true
build-args: |
VITE_VOTE_HOME=zoo
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- name: Say what to pin
run: |
echo "Built zoo.vote: ${{ steps.meta.outputs.tags }}"
echo "Pin it in the zoo-vote deploy manifest under image.tag."
echo "Nothing deploys until that file names this tag."