From 3b0774805cd06e1d9094a5b0773126cbfb573abb Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Wed, 2 Sep 2020 16:18:08 +0100 Subject: [PATCH] Version imprint (#1383) * Versions * Update build.sh --- build.sh | 9 +++++++-- federationapi/routing/version.go | 11 ++++++++++- internal/setup/base.go | 2 ++ internal/version.go | 26 ++++++++++++++++++++++++++ 4 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 internal/version.go diff --git a/build.sh b/build.sh index 087f4ae72..34e4b1153 100755 --- a/build.sh +++ b/build.sh @@ -3,6 +3,11 @@ # Put installed packages into ./bin export GOBIN=$PWD/`dirname $0`/bin -go install -v $PWD/`dirname $0`/cmd/... +export BRANCH=`(git symbolic-ref --short HEAD | cut -d'/' -f 3 )|| ""` +export BUILD=`git rev-parse --short HEAD || ""` -GOOS=js GOARCH=wasm go build -o main.wasm ./cmd/dendritejs +export FLAGS="-X github.com/matrix-org/dendrite/internal.branch=$BRANCH -X github.com/matrix-org/dendrite/internal.build=$BUILD" + +go install -trimpath -ldflags "$FLAGS" -v $PWD/`dirname $0`/cmd/... + +GOOS=js GOARCH=wasm go build -trimpath -ldflags "$FLAGS" -o main.wasm ./cmd/dendritejs diff --git a/federationapi/routing/version.go b/federationapi/routing/version.go index 14ecd21e1..906fc2b9b 100644 --- a/federationapi/routing/version.go +++ b/federationapi/routing/version.go @@ -17,6 +17,7 @@ package routing import ( "net/http" + "github.com/matrix-org/dendrite/internal" "github.com/matrix-org/util" ) @@ -31,5 +32,13 @@ type server struct { // Version returns the server version func Version() util.JSONResponse { - return util.JSONResponse{Code: http.StatusOK, JSON: &version{server{"dev", "Dendrite"}}} + return util.JSONResponse{ + Code: http.StatusOK, + JSON: &version{ + server{ + Name: "Dendrite", + Version: internal.VersionString(), + }, + }, + } } diff --git a/internal/setup/base.go b/internal/setup/base.go index 7bf06e748..ec2bbc4cf 100644 --- a/internal/setup/base.go +++ b/internal/setup/base.go @@ -100,6 +100,8 @@ func NewBaseDendrite(cfg *config.Dendrite, componentName string, useHTTPAPIs boo internal.SetupHookLogging(cfg.Logging, componentName) internal.SetupPprof() + logrus.Infof("Dendrite version %s", internal.VersionString()) + closer, err := cfg.SetupTracing("Dendrite" + componentName) if err != nil { logrus.WithError(err).Panicf("failed to start opentracing") diff --git a/internal/version.go b/internal/version.go new file mode 100644 index 000000000..851a09384 --- /dev/null +++ b/internal/version.go @@ -0,0 +1,26 @@ +package internal + +import "fmt" + +// -ldflags "-X github.com/matrix-org/dendrite/internal.branch=master" +var branch string + +// -ldflags "-X github.com/matrix-org/dendrite/internal.build=alpha" +var build string + +const ( + VersionMajor = 0 + VersionMinor = 0 + VersionPatch = 0 +) + +func VersionString() string { + version := fmt.Sprintf("%d.%d.%d", VersionMajor, VersionMinor, VersionPatch) + if branch != "" { + version += fmt.Sprintf("-%s", branch) + } + if build != "" { + version += fmt.Sprintf("+%s", build) + } + return version +}