@@ -3,12 +3,27 @@ set -xe
33
44SRC_DIR=" ${SRC_DIR:- $PWD } "
55DOCKER=" ${DOCKER:- docker} "
6- GOLANG=" ${GOLANG:- golang: 1.22-alpine} "
76
8- TAG=$( git describe --tags --dirty)
7+ GO_IMAGE=" ${GO_IMAGE:- golang} "
8+ GO_VERSION=" ${GO_VERSION:- 1.22-alpine} "
9+ GOLANG=" ${GO_IMAGE} :${GO_VERSION} "
10+
11+ _defaultTag=$( git describe --tags --dirty)
12+ TAG=${TAG:- $_defaultTag }
913RELEASE_DIR=release-${TAG}
1014
11- BUILDFLAGS=" -ldflags '-extldflags -static -X github.com/containernetworking/plugins/pkg/utils/buildversion.BuildVersion=${TAG} '"
15+ DOCKER_RUN_ARGS=${DOCKER_RUN_ARGS:- ' -ti' }
16+
17+ CGO_ENABLED=" ${CGO_ENABLED:- 0} "
18+ EXTLDFLAGS_LINUX=" "
19+ if [ " ${CGO_ENABLED} " == " 0" ]; then
20+ EXTLDFLAGS_LINUX=" -extldflags -static"
21+ fi
22+
23+ GOARCH_LIST=" ${GOARCH_LIST:- amd64 arm arm64 ppc64le s390x mips64le riscv64} "
24+
25+ BUILDFLAGS_LINUX=" -ldflags '${EXTLDFLAGS_LINUX} -X github.com/containernetworking/plugins/pkg/utils/buildversion.BuildVersion=${TAG} '"
26+ BUILDFLAGS_WINDOWS=" -ldflags '-extldflags -static -X github.com/containernetworking/plugins/pkg/utils/buildversion.BuildVersion=${TAG} '"
1227
1328OUTPUT_DIR=bin
1429
@@ -17,14 +32,18 @@ rm -Rf ${SRC_DIR}/${RELEASE_DIR}
1732mkdir -p ${SRC_DIR} /${RELEASE_DIR}
1833mkdir -p ${OUTPUT_DIR}
1934
20- $DOCKER run -ti -v ${SRC_DIR} :/go/src/github.com/containernetworking/plugins:z --rm " ${GOLANG} " \
35+ $DOCKER run ${DOCKER_RUN_ARGS} -v ${SRC_DIR} :/go/src/github.com/containernetworking/plugins:z --rm " ${GOLANG} " \
2136/bin/sh -xe -c " \
22- apk --no-cache add bash tar;
37+ for cmd in bash tar; do
38+ command -v apk && apk --no-cache add \$ cmd
39+ command -v \$ cmd || (echo \$ cmd not found && exit 1);
40+ done
41+
2342 cd /go/src/github.com/containernetworking/plugins; umask 0022;
2443
25- for arch in amd64 arm arm64 ppc64le s390x mips64le riscv64 ; do \
44+ for arch in ${GOARCH_LIST} ; do \
2645 rm -f ${OUTPUT_DIR} /*; \
27- CGO_ENABLED=0 GOARCH=\$ arch ./build_linux.sh ${BUILDFLAGS } ; \
46+ CGO_ENABLED=${CGO_ENABLED} GOARCH=\$ arch ./build_linux.sh ${BUILDFLAGS_LINUX } ; \
2847 for format in tgz; do \
2948 FILENAME=cni-plugins-linux-\$ arch-${TAG} .\$ format; \
3049 FILEPATH=${RELEASE_DIR} /\$ FILENAME; \
@@ -33,7 +52,7 @@ $DOCKER run -ti -v ${SRC_DIR}:/go/src/github.com/containernetworking/plugins:z -
3352 done;
3453
3554 rm -rf ${OUTPUT_DIR} /*; \
36- CGO_ENABLED=0 GOARCH=amd64 ./build_windows.sh ${BUILDFLAGS } ; \
55+ CGO_ENABLED=0 GOARCH=amd64 ./build_windows.sh ${BUILDFLAGS_WINDOWS } ; \
3756 for format in tgz; do \
3857 FILENAME=cni-plugins-windows-amd64-${TAG} .\$ format; \
3958 FILEPATH=${RELEASE_DIR} /\$ FILENAME; \
0 commit comments