Releases, Versionierung und Zielplattformen
Git-basierte Build-Metadaten
Jedes Binary enthält drei über private-proxy-mcp version sichtbare Werte:
version:git describe --tags --always --dirty, bei Tag-Releases der Tagname;commit: die ersten zwölf Zeichen des Commit-SHA;build_time: der Commit-Zeitstempel, nicht die aktuelle Uhrzeit des Runners.
VERSION, COMMIT, BUILD_TIME und SOURCE_DATE_EPOCH dürfen für
kontrollierte Paket-Builds überschrieben werden. Standardmäßig stammen alle
Werte aus dem ausgecheckten Git-Stand. Der Commit-Zeitstempel hält Builds
desselben Stands deterministisch.
Binärartefakte
make release erzeugt:
| Ziel | Archiv |
|---|---|
| Linux amd64 | private-proxy-mcp_<version>_linux_amd64.tar.gz |
| Linux arm64 | private-proxy-mcp_<version>_linux_arm64.tar.gz |
| macOS arm64 | private-proxy-mcp_<version>_darwin_arm64.tar.gz |
| Windows amd64 | private-proxy-mcp_<version>_windows_amd64.zip |
Jedes Archiv enthält das gemeinsame Binary und config.example.yaml.
dist/checksums.txt enthält SHA-256-Prüfsummen aller Archive.
make release-verify baut die gesamte Matrix und prüft Inhalt sowie
Prüfsummen.
OCI-Images
Der gemeinsame Dockerfile hat zwei finale Targets:
mcpmit dem Standardbefehlmcp-server;proxymit dem Standardbefehlprivate-proxy.
Beide Targets verwenden dasselbe statische Binary, laufen als nonroot und
werden für linux/amd64 und linux/arm64 veröffentlicht:
repository.hildebrandt.io/ai-tools/private-proxy-mcp/mcp:<tag>
repository.hildebrandt.io/ai-tools/private-proxy-mcp/proxy:<tag>
Self-Update
Installierte Binaries können sich über private-proxy-mcp update selbst
aktualisieren. Der Befehl lädt das neueste Release von Forgejo, prüft
checksums.txt und ersetzt das laufende Binary. Details und Flags stehen in
CLI.md.
Release-Ablauf
make check acceptance test-race vuln release-verifyausführen.- Einen annotierten SemVer-Tag, beispielsweise
v1.2.3, erstellen. - Den Tag nach Forgejo pushen.
.forgejo/workflows/release.ymlerstellt Release-Assets und beide Multi-Arch-Manifeste.checksums.txt,private-proxy-mcp versionund die OCI-Labels gegen Tag und Commit prüfen.
Die Release-Actions sind auf vollständige Commit-SHAs gepinnt. Der Forgejo-Runner benötigt Docker/BuildKit-Zugriff und Schreibrechte für Releases und Packages des Repositorys.
Für Multi-Arch-Container muss das Repository-Secret REGISTRY_TOKEN gesetzt
sein (PAT mit Package-Write). Der automatische Actions-Token reicht auf diesem
Forgejo-Host nicht für docker push. Optional: Variable REGISTRY_USERNAME
(Default frank).
Live-YouTube-Tests sind opt-in (LIVE_YOUTUBE=1 / make test-live) und laufen
nicht in der CI.