1
1
#! /usr/bin/env bash
2
2
3
+ set -euo pipefail
4
+
3
5
source ./scripts/test_lib.sh
4
6
5
7
GIT_SHA=$( git rev-parse --short HEAD || echo " GitNotFound" )
6
- if [[ -n " $FAILPOINTS " ]]; then
8
+ if [[ -n " ${ FAILPOINTS:- } " ]]; then
7
9
GIT_SHA=" $GIT_SHA " -FAILPOINTS
8
10
fi
9
11
10
12
VERSION_SYMBOL=" ${ROOT_MODULE} /api/v3/version.GitSHA"
11
13
14
+ # use go env if noset
15
+ GOOS=${GOOS:- $(go env GOOS)}
16
+ GOARCH=${GOARCH:- $(go env GOARCH)}
17
+
12
18
# Set GO_LDFLAGS="-s" for building without symbols for debugging.
13
19
# shellcheck disable=SC2206
14
- GO_LDFLAGS=(${GO_LDFLAGS} " -X=${VERSION_SYMBOL} =${GIT_SHA} " )
15
- GO_BUILD_ENV=(" CGO_ENABLED=0" " GO_BUILD_FLAGS=${GO_BUILD_FLAGS} " " GOOS=${GOOS} " " GOARCH=${GOARCH} " )
20
+ GO_LDFLAGS=(${GO_LDFLAGS:- } " -X=${VERSION_SYMBOL} =${GIT_SHA} " )
21
+ GO_BUILD_ENV=(" CGO_ENABLED=0" " GO_BUILD_FLAGS=${GO_BUILD_FLAGS:- } " " GOOS=${GOOS} " " GOARCH=${GOARCH} " )
16
22
17
23
# enable/disable failpoints
18
24
toggle_failpoints () {
@@ -27,21 +33,21 @@ toggle_failpoints() {
27
33
28
34
toggle_failpoints_default () {
29
35
mode=" disable"
30
- if [[ -n " $FAILPOINTS " ]]; then mode=" enable" ; fi
36
+ if [[ -n " ${ FAILPOINTS:- } " ]]; then mode=" enable" ; fi
31
37
toggle_failpoints " $mode "
32
38
}
33
39
34
40
etcd_build () {
35
41
out=" bin"
36
- if [[ -n " ${BINDIR} " ]]; then out=" ${BINDIR} " ; fi
42
+ if [[ -n " ${BINDIR:- } " ]]; then out=" ${BINDIR} " ; fi
37
43
toggle_failpoints_default
38
44
39
45
run rm -f " ${out} /etcd"
40
46
(
41
47
cd ./server
42
48
# Static compilation is useful when etcd is run in a container. $GO_BUILD_FLAGS is OK
43
49
# shellcheck disable=SC2086
44
- run env " ${GO_BUILD_ENV[@]} " go build $GO_BUILD_FLAGS \
50
+ run env " ${GO_BUILD_ENV[@]} " go build ${ GO_BUILD_FLAGS:- } \
45
51
-trimpath \
46
52
-installsuffix=cgo \
47
53
" -ldflags=${GO_LDFLAGS[*]} " \
@@ -52,7 +58,7 @@ etcd_build() {
52
58
# shellcheck disable=SC2086
53
59
(
54
60
cd ./etcdutl
55
- run env GO_BUILD_FLAGS=" ${GO_BUILD_FLAGS} " " ${GO_BUILD_ENV[@]} " go build $GO_BUILD_FLAGS \
61
+ run env GO_BUILD_FLAGS=" ${GO_BUILD_FLAGS:- } " " ${GO_BUILD_ENV[@]} " go build ${ GO_BUILD_FLAGS:- } \
56
62
-trimpath \
57
63
-installsuffix=cgo \
58
64
" -ldflags=${GO_LDFLAGS[*]} " \
@@ -63,7 +69,7 @@ etcd_build() {
63
69
# shellcheck disable=SC2086
64
70
(
65
71
cd ./etcdctl
66
- run env GO_BUILD_FLAGS=" ${GO_BUILD_FLAGS} " " ${GO_BUILD_ENV[@]} " go build $GO_BUILD_FLAGS \
72
+ run env GO_BUILD_FLAGS=" ${GO_BUILD_FLAGS:- } " " ${GO_BUILD_ENV[@]} " go build ${ GO_BUILD_FLAGS:- } \
67
73
-trimpath \
68
74
-installsuffix=cgo \
69
75
" -ldflags=${GO_LDFLAGS[*]} " \
@@ -84,7 +90,7 @@ etcd_build() {
84
90
85
91
tools_build () {
86
92
out=" bin"
87
- if [[ -n " ${BINDIR} " ]]; then out=" ${BINDIR} " ; fi
93
+ if [[ -n " ${BINDIR:- } " ]]; then out=" ${BINDIR} " ; fi
88
94
tools_path=" tools/benchmark
89
95
tools/etcd-dump-db
90
96
tools/etcd-dump-logs
@@ -94,7 +100,7 @@ tools_build() {
94
100
echo " Building" " '${tool} '" ...
95
101
run rm -f " ${out} /${tool} "
96
102
# shellcheck disable=SC2086
97
- run env GO_BUILD_FLAGS=" ${GO_BUILD_FLAGS} " CGO_ENABLED=0 go build ${GO_BUILD_FLAGS} \
103
+ run env GO_BUILD_FLAGS=" ${GO_BUILD_FLAGS:- } " CGO_ENABLED=0 go build ${GO_BUILD_FLAGS:- } \
98
104
-trimpath \
99
105
-installsuffix=cgo \
100
106
" -ldflags=${GO_LDFLAGS[*]} " \
@@ -105,7 +111,7 @@ tools_build() {
105
111
106
112
tests_build () {
107
113
out=" bin"
108
- if [[ -n " ${BINDIR} " ]]; then out=" ${BINDIR} " ; fi
114
+ if [[ -n " ${BINDIR:- } " ]]; then out=" ${BINDIR} " ; fi
109
115
tools_path="
110
116
functional/cmd/etcd-agent
111
117
functional/cmd/etcd-proxy
@@ -118,7 +124,7 @@ tests_build() {
118
124
run rm -f " ../${out} /${tool} "
119
125
120
126
# shellcheck disable=SC2086
121
- run env CGO_ENABLED=0 GO_BUILD_FLAGS=" ${GO_BUILD_FLAGS} " go build ${GO_BUILD_FLAGS} \
127
+ run env CGO_ENABLED=0 GO_BUILD_FLAGS=" ${GO_BUILD_FLAGS:- } " go build ${GO_BUILD_FLAGS:- } \
122
128
-installsuffix=cgo \
123
129
" -ldflags=${GO_LDFLAGS[*]} " \
124
130
-o=" ../${out} /${tool} " " ./${tool} " || return 2
0 commit comments