forked from github/multus-cni
Previously the build script required git to be used and installed which did not allow to build Multus from a tarball which doesn't contain .git directory. That made packaging of Multus hard. Example usage after the change if you do not want to use git: ``` $ VERSION=v3.3 COMMIT=ba33df ./build ``` Signed-off-by: Michal Rostecki <mrostecki@opensuse.org>
51 lines
1.3 KiB
Bash
Executable File
51 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
DEST_DIR="bin"
|
|
|
|
if [ ! -d ${DEST_DIR} ]; then
|
|
mkdir ${DEST_DIR}
|
|
fi
|
|
|
|
# Add version/commit/date into binary
|
|
# In case of TravisCI, need to check error code of 'git describe'.
|
|
if [ -z "$VERSION" ]; then
|
|
set +e
|
|
git describe --tags --abbrev=0 > /dev/null 2>&1
|
|
if [ "$?" != "0" ]; then
|
|
VERSION="master"
|
|
else
|
|
VERSION=$(git describe --tags --abbrev=0)
|
|
fi
|
|
set -e
|
|
fi
|
|
DATE=$(date --iso-8601=seconds)
|
|
COMMIT=${COMMIT:-$(git rev-parse --verify HEAD)}
|
|
LDFLAGS="-X main.version=${VERSION:-master} -X main.commit=${COMMIT} -X main.date=${DATE}"
|
|
export CGO_ENABLED=0
|
|
|
|
# this if... will be removed when gomodules goes default
|
|
if [ "$GO111MODULE" == "off" ]; then
|
|
echo "Building plugin without go module"
|
|
echo "Warning: this will be deprecated in near future so please use go modules!"
|
|
|
|
ORG_PATH="github.com/intel"
|
|
REPO_PATH="${ORG_PATH}/multus-cni"
|
|
|
|
if [ ! -h gopath/src/${REPO_PATH} ]; then
|
|
mkdir -p gopath/src/${ORG_PATH}
|
|
ln -s ../../../.. gopath/src/${REPO_PATH} || exit 255
|
|
fi
|
|
|
|
export GO15VENDOREXPERIMENT=1
|
|
export GOBIN=${PWD}/bin
|
|
export GOPATH=${PWD}/gopath
|
|
go install -tags no_openssl -ldflags "${LDFLAGS}" "$@" ${REPO_PATH}/multus
|
|
else
|
|
# build with go modules
|
|
export GO111MODULE=on
|
|
|
|
echo "Building plugins"
|
|
go build -o ${DEST_DIR}/multus -tags no_openssl -ldflags "${LDFLAGS}" "$@" ./multus
|
|
fi
|