diff --git a/.make/go.mk b/.make/go.mk index 48fa70bef..1dec932a0 100644 --- a/.make/go.mk +++ b/.make/go.mk @@ -29,7 +29,7 @@ ifndef VERSION ifneq ($(DRONE_TAG),) VERSION ?= $(subst v,,$(DRONE_TAG)) else - VERSION ?= $(shell git rev-parse --short HEAD) + STRING ?= $(shell git rev-parse --short HEAD) endif endif @@ -37,8 +37,8 @@ ifndef DATE DATE := $(shell date -u '+%Y%m%d') endif -LDFLAGS += -X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn -s -w -X "$(OCIS_REPO)/ocis-pkg/version.String=$(VERSION)" -X "$(OCIS_REPO)/ocis-pkg/version.Date=$(DATE)" -DEBUG_LDFLAGS += -X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn -X "$(OCIS_REPO)/ocis-pkg/version.String=$(VERSION)" -X "$(OCIS_REPO)/ocis-pkg/version.Date=$(DATE)" +LDFLAGS += -X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn -s -w -X "$(OCIS_REPO)/ocis-pkg/version.String=$(STRING)" -X "$(OCIS_REPO)/ocis-pkg/version.Tag=$(VERSION)" -X "$(OCIS_REPO)/ocis-pkg/version.Date=$(DATE)" +DEBUG_LDFLAGS += -X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn -X "$(OCIS_REPO)/ocis-pkg/version.String=$(STRING)" -X "$(OCIS_REPO)/ocis-pkg/version.Tag=$(VERSION)"-X "$(OCIS_REPO)/ocis-pkg/version.Date=$(DATE)" GCFLAGS += all=-N -l diff --git a/ocis-pkg/version/version.go b/ocis-pkg/version/version.go index 3b9945eec..f4a551d6a 100644 --- a/ocis-pkg/version/version.go +++ b/ocis-pkg/version/version.go @@ -7,8 +7,16 @@ import ( ) var ( - // String gets defined by the build system. - String = "dev" + // String gets defined by the build system + String string + + // Tag gets defined by the build system + Tag string + + // LatestTag is the latest released version plus the dev meta version. + // Will be overwritten by the release pipeline + // Needs a manual change for every tagged release + LatestTag = "2.0.0-beta1+dev" // Date indicates the build date. Date = time.Now().Format("20060102") @@ -32,21 +40,27 @@ func GetString() string { } // Parsed returns a semver Version -func Parsed() *semver.Version { - versionToParse := String - if String == "dev" { - versionToParse = "0.0.0+dev" +func Parsed() (version *semver.Version) { + versionToParse := LatestTag + if Tag != "" { + versionToParse = Tag } - parsedVersion, err := semver.NewVersion(versionToParse) + version, err := semver.NewVersion(versionToParse) // We have no semver version but a commitid if err != nil { - parsedVersion, err = semver.NewVersion("0.0.0+" + String) // this should never happen if err != nil { return &semver.Version{} } } - return parsedVersion + if String != "" { + nVersion, err := version.SetMetadata(String) + if err != nil { + return &semver.Version{} + } + version = &nVersion + } + return version } // ParsedLegacy returns the legacy version