github.com/apremalal/vamps-core@v1.0.1-0.20161221121535-d430b56ec174/build.sh (about) 1 #!/bin/bash 2 set -e 3 4 PROJECT_NAME=${PWD##*/} #set current folder name as the project name 5 PROJECT_ROOT=`pwd` 6 7 # setting SERVER_HOME for test cases 8 HOME=`cd server;pwd` 9 echo $HOME 10 export SERVER_HOME=$HOME 11 12 echo 'Exporting GO variables.' 13 14 if [ -z "${GOPATH}" ]; then 15 echo "Build failed due to GOPATH has not been set." 16 exit 1 17 fi 18 19 command -v godep >/dev/null 2>&1 || { echo >&2 "godep required. Installing godep."; go get github.com/tools/godep;} 20 command -v goimports >/dev/null 2>&1 || { echo >&2 "goimports required. Installing goimports."; \ 21 go get golang.org/x/tools/cmd/goimports;} 22 23 export GOBIN="$PROJECT_ROOT" 24 25 rm -rf ${PROJECT_ROOT}/target 26 mkdir -p ${PROJECT_ROOT}/target 27 28 echo 'Formatting the code base...' 29 godep go fmt $(go list ./... | grep -v /vendor/) 30 31 echo 'Optimizing the imports...' 32 goimports -w $(go list -f {{.Dir}} ./... | grep -v /vendor/) 33 34 echo 'Installing dependencies. This might take some time...' 35 godep go install $(go list ./... | grep -v /vendor/) 36 37 RUN_TEST=1 38 while getopts ":t" opt; do 39 case $opt in 40 t) 41 echo "Skipping test cases" >&2 42 RUN_TEST=0 43 ;; 44 \?) 45 echo "Invalid option: -$OPTARG" >&2 46 ;; 47 esac 48 done 49 50 if [ ${RUN_TEST} = 1 ]; then 51 echo "Executing test" 52 godep go test -v $(go list ./... | grep -v /vendor/) 53 fi 54 55 mv ${PROJECT_NAME} ${PROJECT_ROOT}/server/bin/server.bin 56 57 echo 'GO build complete.' 58 59 cd ${PROJECT_ROOT}/target 60 61 if [ "$1" = "--release" ];then 62 echo "Writing version information to versioninfo.md" 63 DATE_COMMAND=$(which date) 64 TIME_STAMP=`${DATE_COMMAND} '+%Y-%m-%d.%H:%M:%S'` 65 66 echo "Time Stamp : ${TIME_STAMP}" > ../server/versioninfo.md 67 LAST_COMMIT_ID=$(git log | head -1 | sed s/'commit '//) 68 echo "Last Commit ID : ${LAST_COMMIT_ID}" >> ../server/versioninfo.md 69 GIT_BRANCH=$(git branch) 70 echo "Branch : ${GIT_BRANCH}" >> ../server/versioninfo.md 71 fi 72 73 echo "Start creating new distribution" 74 mkdir ${PROJECT_NAME} 75 cp -r ../server/* ${PROJECT_NAME}/ 76 zip -rq ${PROJECT_NAME}.zip ./${PROJECT_NAME}/* -x *.log -x *.out -x *.tmp* -x *.test* 77 rm -rf ${PROJECT_NAME} 78 echo "Distribution creation complete."