diff --git a/internal/build/env.go b/internal/build/env.go index 95f00035d..a3017182e 100644 --- a/internal/build/env.go +++ b/internal/build/env.go @@ -20,6 +20,7 @@ import ( "flag" "fmt" "os" + "regexp" "strconv" "strings" "time" @@ -99,6 +100,13 @@ func LocalEnv() Environment { if fields := strings.Fields(head); len(fields) == 2 { head = fields[1] } else { + // In this case we are in "detached head" state + // see: https://git-scm.com/docs/git-checkout#_detached_head + // Additional check required to verify, that file contains commit hash + commitRe, _ := regexp.Compile("^([0-9a-f]{40})$") + if commit := commitRe.FindString(head); commit != "" && env.Commit == "" { + env.Commit = commit + } return env } if env.Commit == "" {