ci: add goreleaser and semver-driven release workflow

The workflow calculates the version with semver-generator, tags the
commit when the version is new, and runs goreleaser. goreleaser ships
two distribution paths: tar.gz binaries for darwin and linux on amd64
and arm64, and a multi-arch ghcr.io container that carries the go,
python3, and C toolchains so the exec evaluators run in-container.
The new llmtest version subcommand reports the stamped build version.
This commit is contained in:
2026-08-17 10:49:35 +01:00
parent 67d50ce85a
commit 28aeb63dd8
5 changed files with 215 additions and 0 deletions
+8
View File
@@ -21,6 +21,10 @@ import (
// it is not exposed as a flag.
const requestTemperature = 0.0
// version is stamped by the release build via
// -ldflags "-X main.version=vX.Y.Z"; a source build reports "dev".
var version = "dev"
func main() {
if len(os.Args) < 2 {
usage()
@@ -33,6 +37,9 @@ func main() {
err = runCommand(os.Args[2:])
case "list":
err = listCommand(os.Args[2:])
case "version", "-v", "--version":
fmt.Println("llmtest " + version)
return
case "-h", "--help", "help":
usage()
return
@@ -54,6 +61,7 @@ func usage() {
Usage:
llmtest run [flags] Run the test catalog against configured models.
llmtest list [flags] List the test catalog.
llmtest version Print the build version.
Run "llmtest run -h" or "llmtest list -h" for flag details.
`)