From 3483447c370084b6329f7419144b8c74a9c55198 Mon Sep 17 00:00:00 2001 From: Denis Mishin Date: Thu, 15 Aug 2024 10:57:10 -0400 Subject: [PATCH] ci: do not include timestamp into buildmeta (#5215) --- .github/goreleaser.yaml | 2 +- internal/version/version.go | 12 ++++++++++++ pkg/cmd/pomerium/pomerium.go | 9 ++++++--- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/goreleaser.yaml b/.github/goreleaser.yaml index e11d563b2..422057b92 100644 --- a/.github/goreleaser.yaml +++ b/.github/goreleaser.yaml @@ -34,7 +34,7 @@ builds: - -s -w - -X github.com/pomerium/pomerium/internal/version.Version={{.Version}} - -X github.com/pomerium/pomerium/internal/version.GitCommit={{.ShortCommit}} - - -X github.com/pomerium/pomerium/internal/version.BuildMeta={{.Timestamp}} + - -X github.com/pomerium/pomerium/internal/version.Timestamp={{.Timestamp}} - -X github.com/pomerium/pomerium/internal/version.ProjectName=pomerium - -X github.com/pomerium/pomerium/internal/version.ProjectURL=https://www.pomerium.io diff --git a/internal/version/version.go b/internal/version/version.go index cd93ddea8..21abf600c 100644 --- a/internal/version/version.go +++ b/internal/version/version.go @@ -4,7 +4,9 @@ package version import ( "fmt" "runtime" + "strconv" "strings" + "time" ) var ( @@ -18,10 +20,20 @@ var ( GitCommit = "" // BuildMeta specifies release type (dev,rc1,beta,etc) BuildMeta = "" + // Timestamp specifies the build time, set by the compiler as UNIX timestamp. + Timestamp = "" runtimeVersion = runtime.Version() ) +func BuildTime() string { + tm, err := strconv.Atoi(Timestamp) + if err != nil { + return "" + } + return time.Unix(int64(tm), 0).UTC().Format(time.RFC3339) +} + // FullVersion returns a version string. func FullVersion() string { var sb strings.Builder diff --git a/pkg/cmd/pomerium/pomerium.go b/pkg/cmd/pomerium/pomerium.go index efbcb9d1f..d4d8196db 100644 --- a/pkg/cmd/pomerium/pomerium.go +++ b/pkg/cmd/pomerium/pomerium.go @@ -34,10 +34,13 @@ import ( func Run(ctx context.Context, src config.Source) error { _, _ = maxprocs.Set(maxprocs.Logger(func(s string, i ...any) { log.Debug(context.Background()).Msgf(s, i...) })) - log.Info(ctx). + evt := log.Info(ctx). Str("envoy_version", files.FullVersion()). - Str("version", version.FullVersion()). - Msg("cmd/pomerium") + Str("version", version.FullVersion()) + if buildTime := version.BuildTime(); buildTime != "" { + evt = evt.Str("built", buildTime) + } + evt.Msg("cmd/pomerium") src, err := config.NewLayeredSource(ctx, src, derivecert_config.NewBuilder()) if err != nil {