2 Releases
frank edited this page 2026-07-18 01:06:54 +02:00

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:

  • mcp mit dem Standardbefehl mcp-server;
  • proxy mit dem Standardbefehl private-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

  1. make check acceptance test-race vuln release-verify ausführen.
  2. Einen annotierten SemVer-Tag, beispielsweise v1.2.3, erstellen.
  3. Den Tag nach Forgejo pushen.
  4. .forgejo/workflows/release.yml erstellt Release-Assets und beide Multi-Arch-Manifeste.
  5. checksums.txt, private-proxy-mcp version und 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.