Skip to content

Commit

Permalink
fix build without tags and add building command printing
Browse files Browse the repository at this point in the history
Signed-off-by: Iceber Gu <[email protected]>
  • Loading branch information
Iceber committed Nov 27, 2023
1 parent 316fc57 commit e5a83f4
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 40 deletions.
4 changes: 4 additions & 0 deletions hack/builder-nocgo.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,12 @@ function build_component() {
LDFLAGS=${BUILD_LDFLAGS:-""}
if [ -f ./ldflags.sh ]; then
source ./ldflags.sh
LDFLAGS+=" $(extra_ldflags)"
fi

set -x
CGO_ENABLED=0 go build -ldflags "${LDFLAGS}" -o ${OUTPUT_DIR}/bin/$1 ./cmd/$1
set +x
}

build_component $1
5 changes: 5 additions & 0 deletions hack/builder.sh
Original file line number Diff line number Diff line change
Expand Up @@ -91,16 +91,19 @@ function build_component() {
local LDFLAGS=${BUILD_LDFLAGS:-""}
if [ -f ${CLUSTERPEDIA_REPO}/ldflags.sh ]; then
cd ${CLUSTERPEDIA_REPO} && source ./ldflags.sh
LDFLAGS+=" $(extra_ldflags)"
fi

if [[ "${GOOS}" == "linux" ]]; then
# https://github.com/mattn/go-sqlite3#linux
LDFLAGS+=" -extldflags -static"
fi

set -x
cd $TMP_CLUSTERPEDIA
GOPATH=$TMP_GOPATH GO111MODULE=off CGO_ENABLED=1 CC_FOR_TARGET=$CC_FOR_TARGET CC=$CC \
go build -tags "json1 $GOOS" -ldflags "${LDFLAGS}" -o $OUTPUT_DIR/bin/$1 ./cmd/$1
set +x
}

cleanup
Expand Down Expand Up @@ -161,9 +164,11 @@ function build_plugin() {
cd ${PLUGIN_REPO} && source ./ldflags.sh
fi

set -x
cd $TMP_PLUGIN
GOPATH=$TMP_GOPATH GO111MODULE=off CGO_ENABLED=1 CC_FOR_TARGET=$CC_FOR_TARGET CC=$CC \
go build -ldflags "${LDFLAGS}" -buildmode=plugin -o $OUTPUT_DIR/plugins/$1
set +x
}

copy_plugin_repo
Expand Down
89 changes: 49 additions & 40 deletions ldflags.sh
Original file line number Diff line number Diff line change
@@ -1,42 +1,51 @@
#!/usr/bin/env bash

BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')

# Git information, used to set clusterpedia version
GIT_VERSION=$(git describe --tags --dirty)
GIT_COMMIT_HASH=$(git rev-parse HEAD)

GIT_TREESTATE="clean"
GIT_DIFF=$(git diff --quiet >/dev/null 2>&1; if [ $? -eq 1 ]; then echo "1"; fi)
if [ "${GIT_DIFF}" == "1" ]; then
GIT_TREESTATE="dirty"
fi
KUBE_DEPENDENCE_VERSION=$(go list -m k8s.io/kubernetes | cut -d' ' -f2)
LDFLAGS+=" -X github.com/clusterpedia-io/clusterpedia/pkg/version.gitVersion=${GIT_VERSION}"
LDFLAGS+=" -X github.com/clusterpedia-io/clusterpedia/pkg/version.gitCommit=${GIT_COMMIT_HASH}"
LDFLAGS+=" -X github.com/clusterpedia-io/clusterpedia/pkg/version.gitTreeState=${GIT_TREESTATE}"
LDFLAGS+=" -X github.com/clusterpedia-io/clusterpedia/pkg/version.buildDate=${BUILD_DATE}"
# The `client-go/pkg/version` effects the **User-Agent** when using client-go to request.
# User-Agent="<bin name>/$(GIT_VERSION) ($(GOOS)/$(GOARCH)) kubernetes/$(GIT_COMMIT_HASH)[/<component name>]"
# eg. "clustersynchro-manager/0.4.0 (linux/amd64) kubernetes/fbf0f4f/clustersynchro-manager"
LDFLAGS+=" -X k8s.io/client-go/pkg/version.gitVersion=${GIT_VERSION}"
LDFLAGS+=" -X k8s.io/client-go/pkg/version.gitMajor=$(echo ${GIT_VERSION#v} | cut -d. -f1)"
LDFLAGS+=" -X k8s.io/client-go/pkg/version.gitMinor=$(echo ${GIT_VERSION#v} | cut -d. -f2)"
LDFLAGS+=" -X k8s.io/client-go/pkg/version.gitCommit=${GIT_COMMIT_HASH}"
LDFLAGS+=" -X k8s.io/client-go/pkg/version.gitTreeState=${GIT_TREESTATE}"
LDFLAGS+=" -X k8s.io/client-go/pkg/version.buildDate=${BUILD_DATE}"
# The `component-base/version` effects the version obtained using Kubernetes OpenAPI.
# OpenAPI Path: /apis/clusterpedia.io/v1beta1/resources/version
# $ kubectl version
LDFLAGS+=" -X k8s.io/component-base/version.gitVersion=${KUBE_DEPENDENCE_VERSION}"
LDFLAGS+=" -X k8s.io/component-base/version.gitMajor=$(echo ${KUBE_DEPENDENCE_VERSION#v} | cut -d. -f1)"
LDFLAGS+=" -X k8s.io/component-base/version.gitMinor=$(echo ${KUBE_DEPENDENCE_VERSION#v} | cut -d. -f2)"
LDFLAGS+=" -X k8s.io/component-base/version.gitCommit=${GIT_COMMIT_HASH}"
LDFLAGS+=" -X k8s.io/component-base/version.gitTreeState=${GIT_TREESTATE}"
LDFLAGS+=" -X k8s.io/component-base/version.buildDate=${BUILD_DATE}"
set -o errexit
set -o nounset
set -o pipefail

function extra_ldflags() {
BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')

# Git information, used to set clusterpedia version
GIT_VERSION=$(git describe --tags --dirty)
GIT_COMMIT_HASH=$(git rev-parse HEAD)

GIT_TREESTATE="clean"
GIT_DIFF=$(git diff --quiet >/dev/null 2>&1; if [ $? -eq 1 ]; then echo "1"; fi)
if [ "${GIT_DIFF}" == "1" ]; then
GIT_TREESTATE="dirty"
fi
KUBE_DEPENDENCE_VERSION=$(go list -m k8s.io/kubernetes | cut -d' ' -f2)
local LDFLAGS
LDFLAGS+=" -X github.com/clusterpedia-io/clusterpedia/pkg/version.gitVersion=${GIT_VERSION}"
LDFLAGS+=" -X github.com/clusterpedia-io/clusterpedia/pkg/version.gitCommit=${GIT_COMMIT_HASH}"
LDFLAGS+=" -X github.com/clusterpedia-io/clusterpedia/pkg/version.gitTreeState=${GIT_TREESTATE}"
LDFLAGS+=" -X github.com/clusterpedia-io/clusterpedia/pkg/version.buildDate=${BUILD_DATE}"
# The `client-go/pkg/version` effects the **User-Agent** when using client-go to request.
# User-Agent="<bin name>/$(GIT_VERSION) ($(GOOS)/$(GOARCH)) kubernetes/$(GIT_COMMIT_HASH)[/<component name>]"
# eg. "clustersynchro-manager/0.4.0 (linux/amd64) kubernetes/fbf0f4f/clustersynchro-manager"
LDFLAGS+=" -X k8s.io/client-go/pkg/version.gitVersion=${GIT_VERSION}"
LDFLAGS+=" -X k8s.io/client-go/pkg/version.gitMajor=$(echo ${GIT_VERSION#v} | cut -d. -f1)"
LDFLAGS+=" -X k8s.io/client-go/pkg/version.gitMinor=$(echo ${GIT_VERSION#v} | cut -d. -f2)"
LDFLAGS+=" -X k8s.io/client-go/pkg/version.gitCommit=${GIT_COMMIT_HASH}"
LDFLAGS+=" -X k8s.io/client-go/pkg/version.gitTreeState=${GIT_TREESTATE}"
LDFLAGS+=" -X k8s.io/client-go/pkg/version.buildDate=${BUILD_DATE}"
# The `component-base/version` effects the version obtained using Kubernetes OpenAPI.
# OpenAPI Path: /apis/clusterpedia.io/v1beta1/resources/version
# $ kubectl version
LDFLAGS+=" -X k8s.io/component-base/version.gitVersion=${KUBE_DEPENDENCE_VERSION}"
LDFLAGS+=" -X k8s.io/component-base/version.gitMajor=$(echo ${KUBE_DEPENDENCE_VERSION#v} | cut -d. -f1)"
LDFLAGS+=" -X k8s.io/component-base/version.gitMinor=$(echo ${KUBE_DEPENDENCE_VERSION#v} | cut -d. -f2)"
LDFLAGS+=" -X k8s.io/component-base/version.gitCommit=${GIT_COMMIT_HASH}"
LDFLAGS+=" -X k8s.io/component-base/version.gitTreeState=${GIT_TREESTATE}"
LDFLAGS+=" -X k8s.io/component-base/version.buildDate=${BUILD_DATE}"
echo $LDFLAGS
}

0 comments on commit e5a83f4

Please sign in to comment.