v2ray-core/release/release.sh

50 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
GIT_REV=$(git rev-parse HEAD)
VERSION=$(git name-rev --tags --name-only $GIT_REV)
LD_FLAGS="-s"
if [ "$VERSION" != "undefined" ]; then
VERSION=${VERSION%^0}
TODAY="$(date -u +%Y%m%d)"
LD_FLAGS="${LD_FLAGS} -X github.com/v2ray/v2ray-core.version=${VERSION} -X github.com/v2ray/v2ray-core.build=${TODAY}"
else
VERSION="custom"
fi
BIN_PATH=$GOPATH/bin
mkdir -p $BIN_PATH
function build {
local GOOS=$1
local GOARCH=$2
local SUFFIX=$3
local EXT=$4
local REL_PATH=$BIN_PATH/v2ray_${VERSION}${SUFFIX}
local TARGET=$REL_PATH/v2ray${EXT}
if [ -d "$REL_PATH" ]; then
rm -rf "$REL_PATH"
fi
mkdir -p $REL_PATH/config
cp -R $GOPATH/src/github.com/v2ray/v2ray-core/release/config/* $REL_PATH/config/
GOOS=${GOOS} GOARCH=${GOARCH} go build -o ${TARGET} -compiler gc -ldflags "${LD_FLAGS}" github.com/v2ray/v2ray-core/release/server
ZIP_FILE=$BIN_PATH/v2ray${SUFFIX}.zip
if [ -f $ZIP_FILE ]; then
rm -f $ZIP_FILE
fi
pushd $BIN_PATH
zip -r $ZIP_FILE ./v2ray_${VERSION}${SUFFIX}/*
popd
}
build "darwin" "amd64" "-macos" "-macos"
build "windows" "amd64" "-windows-64" "-windows-64.exe"
build "windows" "386" "-windows-32" "-windows-32.exe"
build "linux" "amd64" "-linux-64" "-linux-64"
build "linux" "386" "-linux-32" "-linux-32"
build "linux" "arm" "-armv6" "-armv6"