mirror of
https://gitee.com/rainbond/Rainbond.git
synced 2024-11-29 10:17:58 +08:00
55 lines
1.4 KiB
Bash
Executable File
55 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
set -o errexit
|
|
|
|
# define package name
|
|
releasedir=./.release
|
|
distdir=${releasedir}/dist
|
|
|
|
VERSION=$(git symbolic-ref HEAD 2>/dev/null | cut -d"/" -f 3)
|
|
buildTime=$(date +%F-%H)
|
|
git_commit=$(git log -n 1 --pretty --format=%h)
|
|
release_desc=${VERSION}-${git_commit}-${buildTime}
|
|
|
|
function prepare() {
|
|
rm -rf $releasedir
|
|
mkdir -pv $releasedir/{tmp,dist}
|
|
[ ! -d "$distdir/usr/local/" ] && mkdir -p $distdir/usr/local/bin
|
|
}
|
|
|
|
build_items=(api builder grctl monitor mq node webcli worker eventlog init-probe mesh-data-panel)
|
|
|
|
function localbuild() {
|
|
if [ "$1" = "all" ];then
|
|
for item in "${build_items[@]}"
|
|
do
|
|
echo "build local ${item}"
|
|
go build -ldflags "-X github.com/goodrain/rainbond/cmd.version=${release_desc}" -o _output/${GOOS}/${VERSION}/rainbond-$item ./cmd/$item
|
|
done
|
|
else
|
|
echo "build local $1 ${VERSION}"
|
|
|
|
outputname="_output/${GOOS}/${VERSION}/rainbond-$1"
|
|
if [ "$GOOS" = "windows" ];then
|
|
outputname="_output/${GOOS}/${VERSION}/rainbond-$1.exe"
|
|
fi
|
|
ldflags="-X github.com/goodrain/rainbond/cmd.version=${release_desc}"
|
|
if [ "$STATIC" = "true" ];then
|
|
ldflags="${ldflags} -extldflags '-static'"
|
|
fi
|
|
go build -v -ldflags "${ldflags}" -o ${outputname} ./cmd/$1
|
|
fi
|
|
}
|
|
|
|
case $1 in
|
|
*)
|
|
prepare
|
|
if [ "$1" = "all" ];then
|
|
for item in "${build_items[@]}"
|
|
do
|
|
localbuild $item
|
|
done
|
|
fi
|
|
localbuild $1
|
|
;;
|
|
esac
|