/
build.sh
45 lines (36 loc) · 1.3 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
#!/bin/sh
set -e
PROJ_NAME="cp-scoring"
PKG_BASE="github.com/netwayfind/${PROJ_NAME}"
BASE_DIR="$(dirname $(readlink -f ${0}))"
VERSION=$(cat ${BASE_DIR}/VERSION)
OUTPUT_DIR="${BASE_DIR}/target/${PROJ_NAME}-${VERSION}"
rm -rf ${OUTPUT_DIR}
mkdir -p ${OUTPUT_DIR}
mkdir -p ${OUTPUT_DIR}/config
mkdir -p ${OUTPUT_DIR}/public
mkdir -p ${OUTPUT_DIR}/ui
echo "Version: ${VERSION}"
echo "Base dir: ${BASE_DIR}"
echo "Output dir: ${OUTPUT_DIR}"
# server dependencies
echo "Fetching server dependencies. This may take a while."
go get github.com/dgrijalva/jwt-go
# build server
echo "Building server"
cd ${BASE_DIR}/server
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o ${OUTPUT_DIR}/${PROJ_NAME}-server-linux -ldflags "-X main.version=${VERSION}" ${PKG_BASE}/server
cp ${BASE_DIR}/server/server.conf.example ${OUTPUT_DIR}/config/
# build agents
echo "Building linux agent"
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o ${OUTPUT_DIR}/public/${PROJ_NAME}-agent-linux -ldflags "-X main.version=${VERSION}" $PKG_BASE/agent
echo "Building windows agent"
GOOS=windows GOARCH=amd64 go build -o ${OUTPUT_DIR}/public/${PROJ_NAME}-agent-windows.exe -ldflags "-X main.version=${VERSION}" $PKG_BASE/agent
# build UI
echo "Bulding UI"
cd ${BASE_DIR}/ui
yarn install
yarn build
cd ${BASE_DIR}/ui/build
cp -r . ${OUTPUT_DIR}/ui/
echo "Done"