10812606bf
Släppprocessen (~/.claude/skills/release) körde hittills bara riksdata och
rd-web, och vägrade den här katalogen med "not one of the release-managed
repos". Den kräver två saker: en .release.conf och ett release-vars-mål som
skriver ut IMAGE, HELM_CHART och HELM_REPO. Poängen med att fråga make i
stället för att upprepa värdena i processen är att de bara kan ha en
definition, så det som taggas, det som pushas och det som wrappern pinnar
inte kan glida isär.
Makefilen är avsiktligt inte en kopia av riksdatas. Två skillnader:
fmt, lint och test speglar .gitea/workflows/ci.yaml steg för steg, så ett
grönt "make fmt lint test" här betyder samma sak som en grön CI. gofmt-målet
är kopierat ordagrant och inte förenklat, eftersom gofmts två felsätt inte
är lika: en felformaterad fil listas på stdout med exit 0, medan en fil som
inte går att parsa ger tom stdout och exit 2 — och den naiva varianten läser
det andra som framgång (9046f6e). Undantaget är -race, som CI inte kör:
sveparen, notifieraren och deadman-svepet delar en enda databasanslutning,
och en kapplöpning där dyker upp som en flaxig incident i produktion i
stället för som ett rött bygge.
Det finns medvetet inga build-, push- eller helm-push-mål, till skillnad
från riksdata och rd-web. Här äger .gitea/workflows/release.yaml
publiceringen, och den gör två saker en lokal make inte gör: bygger
linux/amd64 och linux/arm64 genom buildx, och stämplar chartets version och
appVersion från taggen. Ett vanligt "docker build && docker push" skulle
lägga en enarkitektursbild över den multiarkitekturella taggen — lätt att
göra av misstag och osynligt efteråt, eftersom taggen fortfarande svarar,
bara inte på arm64. Publicering sker genom att pusha en tagg, inget annat.
Claude-Session: https://claude.ai/code/session_01S7R4gWTz5wh5xCY4nCSJjN
18 lines
879 B
Plaintext
18 lines
879 B
Plaintext
# Read by the `release` skill (~/.claude/skills/release).
|
|
#
|
|
# Only what the Makefile cannot already say. IMAGE, HELM_CHART and HELM_REPO come from
|
|
# `make release-vars`, so they have one definition and cannot drift from what is built.
|
|
#
|
|
# Defaults, set here only where this repo differs:
|
|
# CHARTS_REPO=$HOME/git/charts CHARTS_DIR=<image basename>
|
|
# GITEA_LOGIN=Ryuvia APPVERSION_PREFIX=
|
|
|
|
# Same as the image basename, so this is only stated to be read rather than derived.
|
|
CHARTS_DIR=terdut-server
|
|
|
|
# riksdata writes appVersion: "v0.3.1", rd-web writes a bare 0.5.0; this repo writes the
|
|
# v, like riksdata. Nothing reads the field -- .gitea/workflows/release.yaml stamps both
|
|
# version and appVersion from the tag when it publishes -- but people read it, and until
|
|
# 2026-09-01 it said "latest" while the tree headed for a numbered release.
|
|
APPVERSION_PREFIX=v
|