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."