From: Jeff Mahoney Subject: magefile: use stable timestamps for build In order to create reprodicible builds, we can't have timestamps that vary without anything else changing. --- magefiles/magefile.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) --- a/magefiles/magefile.go +++ b/magefiles/magefile.go @@ -472,10 +472,18 @@ func build_gui_files() error { } func flags() string { - timestamp := time.Now().Format(time.RFC3339) + timestamp := os.Getenv("VELOCIRAPTOR_BUILD_TIME") + if timestamp == "" { + timestamp = time.Now().Format(time.RFC3339) + } flags := fmt.Sprintf(` -X "www.velocidex.com/golang/velociraptor/config.build_time=%s"`, timestamp) - flags += fmt.Sprintf(` -X "www.velocidex.com/golang/velociraptor/config.commit_hash=%s"`, hash()) + head := os.Getenv("VELOCIRAPTOR_GIT_HEAD") + if head == "" { + head = hash() + } + + flags += fmt.Sprintf(` -X "www.velocidex.com/golang/velociraptor/config.commit_hash=%s"`, head) // If we are running on the CI pipeline we need to know the run // number and URL so we can report them.