Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Plum <jplum@gitlab.com>2019-01-26 00:05:17 +0300
committerJason Plum <jplum@gitlab.com>2019-02-13 17:00:17 +0300
commitc4953a57bb7dcb053d887d34c60cbdfec3f5757a (patch)
tree6a07f9fdacffa335d64f2f6634d0d0211f19cbfc
parent532be49f10424e7dd86837052382635c0140aaf9 (diff)
Use VERSION file to detect version as fallback
This ensures a proper version is generated in the event of building from non-git source. - Attempt existing detection from git - Attempt to read `VERSION` (`../VERSION` when in `_build/`) - If both fail, use `unknown` Refact `GitalyMake::VersionPrefixed` to make to call `gm.VersionFromGit`, if that returns `unknown`, call `gm.VersionFromFile`, and return whatever that does. `VersionFromGit` takes the original functionality of `VersionPrefixed`, and `VersionFromFile` looks for `../VERSION` file.
-rw-r--r--_support/makegen.go27
-rw-r--r--changelogs/unreleased/1365-version-fallback-file.yml5
2 files changed, 27 insertions, 5 deletions
diff --git a/_support/makegen.go b/_support/makegen.go
index c381b149b..f4685760a 100644
--- a/_support/makegen.go
+++ b/_support/makegen.go
@@ -145,21 +145,38 @@ func (gm *gitalyMake) GoLdFlags() string {
return fmt.Sprintf("-ldflags '-X %s/internal/version.version=%s -X %s/internal/version.buildtime=%s'", gm.Pkg(), gm.Version(), gm.Pkg(), gm.BuildTime())
}
-func (gm *gitalyMake) VersionPrefixed() string {
- if len(gm.versionPrefixed) > 0 {
- return gm.versionPrefixed
+func (gm *gitalyMake) VersionFromFile() string {
+ data, err := ioutil.ReadFile("../VERSION")
+ if err != nil {
+ log.Printf("Error: %v", err)
+ log.Printf("Unable to obtain version from VERSION file.")
+ return "unknown"
}
+ return fmt.Sprintf("v%s",strings.TrimSpace(string(data)))
+}
+func (gm *gitalyMake) VersionFromGit() string {
cmd := exec.Command("git", "describe")
cmd.Stderr = os.Stderr
out, err := cmd.Output()
if err != nil {
log.Printf("%s: %v", strings.Join(cmd.Args, " "), err)
- gm.versionPrefixed = "unknown"
+ return "unknown"
+ }
+ return strings.TrimSpace(string(out))
+}
+
+func (gm *gitalyMake) VersionPrefixed() string {
+ if len(gm.versionPrefixed) > 0 {
return gm.versionPrefixed
}
- gm.versionPrefixed = strings.TrimSpace(string(out))
+ version := gm.VersionFromGit()
+ if version == "unknown" {
+ log.Printf("Unable to determine version from Git. Attempting VERSION file")
+ version = gm.VersionFromFile()
+ }
+ gm.versionPrefixed = version
return gm.versionPrefixed
}
diff --git a/changelogs/unreleased/1365-version-fallback-file.yml b/changelogs/unreleased/1365-version-fallback-file.yml
new file mode 100644
index 000000000..3f0080715
--- /dev/null
+++ b/changelogs/unreleased/1365-version-fallback-file.yml
@@ -0,0 +1,5 @@
+---
+title: Allow version detection from file, if git fails
+merge_request: 1056
+author:
+type: fixed