-
Notifications
You must be signed in to change notification settings - Fork 40
/
build.sh
executable file
·71 lines (58 loc) · 1.36 KB
/
build.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/bash
set -e
if [[ $(uname) == 'Darwin' ]]; then
realpath() {
[[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
}
md5sum() {
md5 $*
}
fi
workdir=$(dirname $(realpath $0))
version=$(cat version 2>/dev/null)
if [ $# == 1 ]; then
version=$1
fi
bin_name="polaris-console"
if [ "${GOOS}" == "" ]; then
GOOS=$(go env GOOS)
fi
if [ "${GOARCH}" == "" ]; then
GOARCH=$(go env GOARCH)
fi
folder_name="polaris-console-release_${version}.${GOOS}.${GOARCH}"
pkg_name="${folder_name}.zip"
if [ "${GOOS}" == "windows" ]; then
bin_name="polaris-console.exe"
fi
echo "GOOS is ${GOOS}, binary name is ${bin_name}"
cd $workdir
# 清理环境
rm -rf ${folder_name}
rm -f ${pkg_name}
rm -rf "polaris_console_package"
# 编译web
cd $workdir/web
rm -rf dist/
npm install --force
npm run build
# 编译web服务器
cd $workdir
rm -f polaris-console
CGO_ENABLED=0 go build -o ${bin_name}
# 打包
cd $workdir
mkdir -p ${folder_name}/web/
mv web/dist/ ${folder_name}/web/
cp ${bin_name} ${folder_name}
cp polaris-console.yaml ${folder_name}
cp -r tool/ ${folder_name}/tool/
mkdir -p ${folder_name}/mysql/
zip -r "${pkg_name}" ${folder_name}
md5sum ${pkg_name} >"${pkg_name}.md5sum"
mv ${folder_name} "polaris_console_package"
if [[ $(uname -a | grep "Darwin" | wc -l) -eq 1 ]]; then
md5 ${pkg_name} >"${pkg_name}.md5sum"
else
md5sum ${pkg_name} >"${pkg_name}.md5sum"
fi