mirror of
https://github.com/hanzoai/pubsub.git
synced 2026-10-30 15:06:26 +00:00
.hanzo/workflows already existed here, and the forge reads the first workflow directory that exists — so these eight files had stopped running on the forge while github.com kept executing them. Removing them leaves one pipeline. Moved. deploy.yml built ghcr.io/hanzoai/pubsub through a reusable in hanzoai/.github; the image is now declared in hanzo.yml `images:` and built by the same lane that gates it. vuln.yaml becomes .hanzo/workflows/vuln.yml with a runner label this fleet serves -- govulncheck is cheap and answers a question the gate cannot, since a vulnerability lands in a dependency without anyone touching this repo. Its SARIF upload is gone with it: that fed GitHub code scanning, which has no counterpart here, so findings now read from the run. Dropped. long-tests, nightly and mqtt-test are upstream NATS lanes that select runners through `vars.GHA_WORKER_*`, an upstream-only variable that resolves to ubuntu-latest here -- a label no runner answers, so they would queue rather than fail. With them go the daily 60-minute JetStream long tests, the nightly multi-arch Docker build assembled from nats-io/nsc and nats-io/natscli, and the MQTT suite that installs hivemq mqtt-cli. The ./server suites they cover still live in the tree and still run locally. release.yaml minted GitHub Releases with cosign signatures and a syft SBOM for the upstream NATS server binaries; the image is what we ship, so that lane and those artifacts are gone. claude.yml called a synadia-io reusable on GitHub PR events and workflow-sanity.yml triggered only on `.github/workflows/**`, which no longer exists. .github/actions/nightly-release was reachable only from nightly.yaml. Kept: CODEOWNERS, FUNDING, ISSUE_TEMPLATE, PULL_REQUEST_TEMPLATE, dependabot, hero.svg.
32 lines
1.4 KiB
YAML
32 lines
1.4 KiB
YAML
# Canonical CI/CD config for hanzoai/pubsub — the one file both the hanzoai/ci
|
|
# reusable (.hanzo/workflows/cicd.yml) and platform.hanzo.ai read.
|
|
#
|
|
# The gate compiles and vets EVERYTHING, then runs the suites that need no
|
|
# cluster: config parsing, the internal packages, the logger, and the embedded
|
|
# server. That split is the point. ./server holds 87 test files that stand up
|
|
# real routes, JetStream stores and MQTT sessions — the repo's own workflows
|
|
# give them 60-minute timeouts, `-p 1`, and separate scheduled runs for exactly
|
|
# that reason, and they still live there. Pulling them into a per-push gate
|
|
# would trade a signal that arrives in minutes for one that times out.
|
|
#
|
|
# `go vet ./...` is unscoped on purpose: it is cheap, it reads the server tree
|
|
# too, and it is the part of the whole-repo check that does not need a cluster.
|
|
|
|
images:
|
|
# ghcr.io/hanzoai/pubsub was built by a reusable in hanzoai/.github called from
|
|
# .github/workflows/deploy.yml. github.com is no longer where this repo's
|
|
# pipeline lives, so the image is declared here and built by the same lane
|
|
# that gates it — one build, one place.
|
|
- name: pubsub
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
repo: ghcr.io/hanzoai/pubsub
|
|
|
|
test:
|
|
- name: build
|
|
run: |
|
|
set -e
|
|
go build ./...
|
|
go vet ./...
|
|
go test -count=1 ./conf/... ./internal/... ./logger/... ./embed/...
|