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 +}