Skip to content

Commit

Permalink
Build manager binary in a modular way
Browse files Browse the repository at this point in the history
Allow overriding CGO_ENABLED value, static flag, and exporting GOEXPERIMENT
  • Loading branch information
razo7 committed Sep 5, 2024
1 parent 0894a1d commit 3ed75eb
Showing 1 changed file with 27 additions and 7 deletions.
34 changes: 27 additions & 7 deletions hack/build.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
#!/bin/bash
set -ex
#!/bin/bash -ex

GIT_VERSION=$(git describe --always --tags || true)
VERSION=${CI_UPSTREAM_VERSION:-${GIT_VERSION}}
Expand All @@ -9,8 +8,29 @@ BUILD_DATE=$(date --utc -Iseconds)

mkdir -p bin

LDFLAGS="-s -w "
LDFLAGS+="-X github.com/medik8s/node-maintenance-operator/version.Version=${VERSION} "
LDFLAGS+="-X github.com/medik8s/node-maintenance-operator/version.GitCommit=${COMMIT} "
LDFLAGS+="-X github.com/medik8s/node-maintenance-operator/version.BuildDate=${BUILD_DATE} "
GOFLAGS=-mod=vendor CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="${LDFLAGS}" -o bin/manager main.go
# first value must not be quoted
LDFLAGS_VALUE="-X github.com/medik8s/node-maintenance-operator/version.Version=${VERSION}"
# additional values must be quoted when used with GOFLAGS!
LDFLAGS_VALUE+=" \"-w\""
LDFLAGS_VALUE+="-X github.com/medik8s/node-maintenance-operator/version.GitCommit=${COMMIT} "
LDFLAGS_VALUE+="-X github.com/medik8s/node-maintenance-operator/version.BuildDate=${BUILD_DATE}"
# allow override for static flag
LDFLAGS_STATIC="${LDFLAGS_STATIC:-" \"-s\""}"
LDFLAGS_VALUE+="${LDFLAGS_STATIC}"
# must be single quoted for use in GOFLAGS
LDFLAGS="'-ldflags=${LDFLAGS_VALUE}'"

# add ldflags to goflags
export GOFLAGS+=" ${LDFLAGS}"
echo "goflags: ${GOFLAGS}"

# allow override and use zero by default- static linking
export CGO_ENABLED=${CGO_ENABLED:-0}
echo "cgo: ${CGO_ENABLED}"

# export in case it was set
if [ ! -z "${GOEXPERIMENT}" ]; then
export GOEXPERIMENT= $GOEXPERIMENT
fi

GOOS=linux GOARCH=amd64 go build -o bin/manager main.go

0 comments on commit 3ed75eb

Please sign in to comment.