Commit Graph

6 Commits

Author SHA1 Message Date
Niklas Ye 28cf9faf77 Gate the release on vet and tests
CI only ever built and published. The 44 tests in internal/api ran on a
laptop or not at all, so a tag could publish binaries, a container image
and a Helm chart from a commit whose tests had never been run — and the
tests are the only thing holding several documented contracts in place,
including the received_at heartbeat and the alert ordering guard.

A test job now runs go vet and go test, and build, docker and chart all
depend on it. The release job is downstream of build, so a tag that fails
publishes nothing at all rather than publishing three artifacts out of
four.

chart-release.yml is deliberately left alone. It fires on charts/**
pushes and publishes the chart, which contains no Go code and only
references an image tag rather than building one, so gating it on the Go
suite would add a minute to every chart edit for no signal.

This still only runs at release time; nothing checks a push or a pull
request, so a broken commit stays green until somebody tags it.
2026-07-31 07:23:14 +02:00
Niklas Ye 79afd05ea5 chart: skip existing releases in chart-release workflow
chart-release.yml fires on any charts/** push to main and ran
chart-releaser against the committed Chart.yaml version, failing with
422 already_exists whenever that version was already published. A tagged
release also publishes the chart from release.yml, which seds the
version from the tag, so the two workflows raced and this one lost.

Brings it to parity with the chart job in release.yml, which has carried
skip_existing since 1451682.
2026-07-28 11:58:34 +02:00
Niklas Ye 885ba73d12 chart: guard version sed behind tag pattern check 2026-05-21 18:14:09 +02:00
Niklas Ye 1451682cdd chart: add skip_existing and workflow_dispatch trigger 2026-05-21 18:08:30 +02:00
Niklas Ye 6baaf96638 Add release workflow, LICENSE, and version stamping
Tag-triggered workflow builds multi-platform binaries, pushes a multi-arch
Docker image to GHCR, bumps and releases the Helm chart, and creates a
GitHub release with all binary artifacts. Adds GPL-3.0 LICENSE and version
variable stamped at build time via ldflags.
2026-05-21 17:08:29 +02:00
Niklas Ye 591290e4ee Add Helm chart and chart-release workflow
charts/terdut-server/ — Helm chart for Kubernetes deployment:
  - Deployment (replicas=1, /healthz probes, TERDUT_DB_PATH=/data/terdut.db)
  - Service (ClusterIP :8080)
  - PVC (1Gi, synology-iscsi) mounted at /data
  - HTTPRoute via envoy-main gateway

.github/workflows/chart-release.yml — packages and publishes the chart to
gh-pages branch on any push to main that touches charts/; repo URL will be
https://yeniklas.github.io/terdut-server once the repo is made public
2026-05-21 15:26:11 +02:00