Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 20 additions & 4 deletions helpers/release/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ func getVersion() semver.Version {
Pre: []semver.PRVersion{
{VersionStr: "git"},
},
Build: []string{"HEAD"},
Build: []string{"{{ .Build }}"},
}
}
`
Expand Down Expand Up @@ -250,7 +250,7 @@ func updateDeps() error {
}

if sv := os.Getenv("GOPASS_NOTEST"); sv != "" {
fmt.Printf("⚠ GOPASS_NOTEST=%v, skipping 'make travis'", sv)
fmt.Printf("⚠ GOPASS_NOTEST=%v, skipping 'make gha-linux'", sv)

return nil
}
Expand All @@ -262,7 +262,7 @@ func updateDeps() error {
return err
}

cmd = exec.Command("make", "travis")
cmd = exec.Command("make", "gha-linux")
cmd.Stderr = os.Stderr
cmd.Stdout = fh
cmd.Env = []string{
Expand All @@ -281,7 +281,7 @@ func updateDeps() error {

if err := cmd.Run(); err != nil {
_ = fh.Close()
fmt.Printf("⚠ 'make travis' failed. Please see the log at %s!", fn)
fmt.Printf("⚠ 'make gha-linux' failed. Please see the log at %s!", fn)

return err
}
Expand Down Expand Up @@ -387,6 +387,7 @@ type tplPayload struct {
Major uint64
Minor uint64
Patch uint64
Build string
}

func writeVersionGo(v semver.Version) error {
Expand All @@ -400,10 +401,16 @@ func writeVersionGo(v semver.Version) error {
}
defer fh.Close()

build := "HEAD"
if sv, err := gitCommitHash(); err == nil {
build = sv
}

return tmpl.Execute(fh, tplPayload{
Major: v.Major,
Minor: v.Minor,
Patch: v.Patch,
Build: build,
})
}

Expand All @@ -420,6 +427,15 @@ func versionFile() (semver.Version, error) {
return semver.Parse(strings.TrimSpace(string(buf)))
}

func gitCommitHash() (string, error) {
buf, err := exec.Command("git", "rev-parse", "--short", "HEAD").CombinedOutput()
if err != nil {
return "", err
}

return strings.TrimSpace(string(buf)), nil
}

func gitVersion() (semver.Version, error) {
buf, err := exec.Command("git", "tag", "--sort=version:refname").CombinedOutput()
if err != nil {
Expand Down
6 changes: 3 additions & 3 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -233,13 +233,13 @@ func parseBuildInfo() (string, string, string) {

for _, v := range bi.Settings {
switch v.Key {
case "gitrevision":
case "vcs.revision":
commit = v.Value[len(v.Value)-8:]
case "gitcommittime":
case "vcs.time":
if bt, err := time.Parse("2006-01-02T15:04:05Z", date); err == nil {
date = bt.Format("2006-01-02 15:04:05")
}
case "gituncommitted":
case "vcs.modified":
if v.Value == "true" {
dirty = " (dirty)"
}
Expand Down
8 changes: 7 additions & 1 deletion main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,13 @@ func TestVersionPrinter(t *testing.T) {
buf := &bytes.Buffer{}
vp := makeVersionPrinter(buf, semver.Version{Major: 1})
vp(nil)
assert.Equal(t, fmt.Sprintf("gopass 1.0.0 %s %s %s\n", runtime.Version(), runtime.GOOS, runtime.GOARCH), buf.String())

commitStr := ""
if commit, _, _ := parseBuildInfo(); commit != "" {
commitStr = "(" + commit + ") "
}

assert.Equal(t, fmt.Sprintf("gopass 1.0.0 %s%s %s %s\n", commitStr, runtime.Version(), runtime.GOOS, runtime.GOARCH), buf.String())
}

func TestGetVersion(t *testing.T) {
Expand Down
Loading