Read the architecture at run time, not via a Buildarch ldflag (closes #66)
check / check (push) Successful in 25s

The Go styleguide and the HTTP server conventions no longer pass the
build architecture in through the Makefile. The Buildarch variable,
globals field and BUILDARCH Makefile lines are removed from every
example; the styleguide example prints runtime.GOARCH, and the
logger's Identify logs "arch", runtime.GOARCH. The styleguide item
gains one sentence saying so.

Model: opus-5-5
This commit was merged in pull request #67.
This commit is contained in:
clawbot committed 2026-10-02 01:03:38 +02:00
1 parent ed5ed236b1
commit 2ae9391b26
2 files changed
+17 -28

No files matched your search

+5 -8
View File
@@ -24,7 +24,8 @@ last_modified: 2026-09-08
1. Embed the git commit hash into the binary and include it in startup logs and
in health check output. This is to make it easier to correlate running
instances with their code. Do not include build time or build user, as these
will make the build nondeterministic.
will make the build nondeterministic. The architecture is not passed in at
build time; a program that reports it reads `runtime.GOARCH` at run time.
Example relevant Makefile sections:
@@ -35,16 +36,14 @@ last_modified: 2026-09-08
import (
"fmt"
"runtime"
)
var (
Version string
Buildarch string
)
var Version string
func main() {
fmt.Printf("Version: %s\n", Version)
fmt.Printf("Buildarch: %s\n", Buildarch)
fmt.Printf("Arch: %s\n", runtime.GOARCH)
}
```
@@ -57,10 +56,8 @@ last_modified: 2026-09-08
# `--build-arg VERSION=...`; where a build stage invokes make,
# `ARG VERSION` puts it in the environment and `?=` defers to it.
VERSION ?= $(shell git describe --always --dirty)
BUILDARCH := $(shell uname -m)
GOLDFLAGS += -X main.Version=$(VERSION)
GOLDFLAGS += -X main.Buildarch=$(BUILDARCH)
# osx can't statically link apparently?!
ifeq ($(UNAME_S),Darwin)