.dockerignore, internal/build: Read git information directly from file (#15458)
* .dockerignore, internal/build: Read git information directly from file This commit changes the way of retrieving git commit and branch for build environment from running git command to reading git files directly. This commit also adds required git files into Docker build context. fixes: #15346 * .dockerignore: workaround for including some files in .git
This commit is contained in:
committed by
Péter Szilágyi
parent
86f6568f66
commit
f47adc9ea8
@ -82,18 +82,21 @@ func Env() Environment {
|
||||
// LocalEnv returns build environment metadata gathered from git.
|
||||
func LocalEnv() Environment {
|
||||
env := applyEnvFlags(Environment{Name: "local", Repo: "ethereum/go-ethereum"})
|
||||
if _, err := os.Stat(".git"); err != nil {
|
||||
head := ReadGitFile("HEAD")
|
||||
if splits := strings.Split(head, " "); len(splits) == 2 {
|
||||
head = splits[1]
|
||||
} else {
|
||||
return env
|
||||
}
|
||||
if env.Commit == "" {
|
||||
env.Commit = RunGit("rev-parse", "HEAD")
|
||||
env.Commit = ReadGitFile(head)
|
||||
}
|
||||
if env.Branch == "" {
|
||||
if b := RunGit("rev-parse", "--abbrev-ref", "HEAD"); b != "HEAD" {
|
||||
env.Branch = b
|
||||
if head != "HEAD" {
|
||||
env.Branch = strings.TrimLeft(head, "refs/heads/")
|
||||
}
|
||||
}
|
||||
if env.Tag == "" {
|
||||
if info, err := os.Stat(".git/objects"); err == nil && info.IsDir() && env.Tag == "" {
|
||||
env.Tag = firstLine(RunGit("tag", "-l", "--points-at", "HEAD"))
|
||||
}
|
||||
return env
|
||||
|
Reference in New Issue
Block a user