release: build with consistent paths
This changes the builds to always add -trimpath which removes specific build time paths from the binary (like current directories etc). Improves build reproducability to make the final binary independent from the specific build path. Lastly, when stripping debug symbols, also add -w to strip DWARF symbols as well which aren't needed in that case either. Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com>
This commit is contained in:

committed by
Marek Siarkowicz

parent
7ccca083eb
commit
1a9742c9c4
4
build.sh
4
build.sh
@ -42,6 +42,7 @@ etcd_build() {
|
|||||||
# Static compilation is useful when etcd is run in a container. $GO_BUILD_FLAGS is OK
|
# Static compilation is useful when etcd is run in a container. $GO_BUILD_FLAGS is OK
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
run env "${GO_BUILD_ENV[@]}" go build $GO_BUILD_FLAGS \
|
run env "${GO_BUILD_ENV[@]}" go build $GO_BUILD_FLAGS \
|
||||||
|
-trimpath \
|
||||||
-installsuffix=cgo \
|
-installsuffix=cgo \
|
||||||
"-ldflags=${GO_LDFLAGS[*]}" \
|
"-ldflags=${GO_LDFLAGS[*]}" \
|
||||||
-o="../${out}/etcd" . || return 2
|
-o="../${out}/etcd" . || return 2
|
||||||
@ -52,6 +53,7 @@ etcd_build() {
|
|||||||
(
|
(
|
||||||
cd ./etcdutl
|
cd ./etcdutl
|
||||||
run env GO_BUILD_FLAGS="${GO_BUILD_FLAGS}" "${GO_BUILD_ENV[@]}" go build $GO_BUILD_FLAGS \
|
run env GO_BUILD_FLAGS="${GO_BUILD_FLAGS}" "${GO_BUILD_ENV[@]}" go build $GO_BUILD_FLAGS \
|
||||||
|
-trimpath \
|
||||||
-installsuffix=cgo \
|
-installsuffix=cgo \
|
||||||
"-ldflags=${GO_LDFLAGS[*]}" \
|
"-ldflags=${GO_LDFLAGS[*]}" \
|
||||||
-o="../${out}/etcdutl" . || return 2
|
-o="../${out}/etcdutl" . || return 2
|
||||||
@ -62,6 +64,7 @@ etcd_build() {
|
|||||||
(
|
(
|
||||||
cd ./etcdctl
|
cd ./etcdctl
|
||||||
run env GO_BUILD_FLAGS="${GO_BUILD_FLAGS}" "${GO_BUILD_ENV[@]}" go build $GO_BUILD_FLAGS \
|
run env GO_BUILD_FLAGS="${GO_BUILD_FLAGS}" "${GO_BUILD_ENV[@]}" go build $GO_BUILD_FLAGS \
|
||||||
|
-trimpath \
|
||||||
-installsuffix=cgo \
|
-installsuffix=cgo \
|
||||||
"-ldflags=${GO_LDFLAGS[*]}" \
|
"-ldflags=${GO_LDFLAGS[*]}" \
|
||||||
-o="../${out}/etcdctl" . || return 2
|
-o="../${out}/etcdctl" . || return 2
|
||||||
@ -92,6 +95,7 @@ tools_build() {
|
|||||||
run rm -f "${out}/${tool}"
|
run rm -f "${out}/${tool}"
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
run env GO_BUILD_FLAGS="${GO_BUILD_FLAGS}" CGO_ENABLED=0 go build ${GO_BUILD_FLAGS} \
|
run env GO_BUILD_FLAGS="${GO_BUILD_FLAGS}" CGO_ENABLED=0 go build ${GO_BUILD_FLAGS} \
|
||||||
|
-trimpath \
|
||||||
-installsuffix=cgo \
|
-installsuffix=cgo \
|
||||||
"-ldflags='${GO_LDFLAGS[*]}'" \
|
"-ldflags='${GO_LDFLAGS[*]}'" \
|
||||||
-o="${out}/${tool}" "./${tool}" || return 2
|
-o="${out}/${tool}" "./${tool}" || return 2
|
||||||
|
@ -87,7 +87,7 @@ function main {
|
|||||||
export GOARCH=${TARGET_ARCH}
|
export GOARCH=${TARGET_ARCH}
|
||||||
|
|
||||||
pushd etcd >/dev/null
|
pushd etcd >/dev/null
|
||||||
GO_LDFLAGS="-s" ./build.sh
|
GO_LDFLAGS="-s -w" ./build.sh
|
||||||
popd >/dev/null
|
popd >/dev/null
|
||||||
|
|
||||||
TARGET="etcd-${VER}-${GOOS}-${GOARCH}"
|
TARGET="etcd-${VER}-${GOOS}-${GOARCH}"
|
||||||
|
@ -7,8 +7,8 @@ fi
|
|||||||
|
|
||||||
(
|
(
|
||||||
cd ./tests
|
cd ./tests
|
||||||
CGO_ENABLED=0 go build -v -installsuffix cgo -ldflags "-s" -o ../bin/etcd-agent ./functional/cmd/etcd-agent
|
CGO_ENABLED=0 go build -v -installsuffix cgo -ldflags "-s -w" -o ../bin/etcd-agent ./functional/cmd/etcd-agent
|
||||||
CGO_ENABLED=0 go build -v -installsuffix cgo -ldflags "-s" -o ../bin/etcd-proxy ./functional/cmd/etcd-proxy
|
CGO_ENABLED=0 go build -v -installsuffix cgo -ldflags "-s -w" -o ../bin/etcd-proxy ./functional/cmd/etcd-proxy
|
||||||
CGO_ENABLED=0 go build -v -installsuffix cgo -ldflags "-s" -o ../bin/etcd-runner ./functional/cmd/etcd-runner
|
CGO_ENABLED=0 go build -v -installsuffix cgo -ldflags "-s -w" -o ../bin/etcd-runner ./functional/cmd/etcd-runner
|
||||||
CGO_ENABLED=0 go build -v -installsuffix cgo -ldflags "-s" -o ../bin/etcd-tester ./functional/cmd/etcd-tester
|
CGO_ENABLED=0 go build -v -installsuffix cgo -ldflags "-s -w" -o ../bin/etcd-tester ./functional/cmd/etcd-tester
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user