| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- #!/usr/bin/env bash
- set -euo pipefail
- IFS=$'\n\t'
- STTRACE=${STTRACE:-}
- script() {
- name="$1"
- shift
- go run "script/$name.go" "$@"
- }
- build() {
- go run build.go "$@"
- }
- case "${1:-default}" in
- default)
- build
- ;;
- clean)
- build "$@"
- ;;
- tar)
- build "$@"
- ;;
- assets)
- build "$@"
- ;;
- xdr)
- build "$@"
- ;;
- translate)
- build "$@"
- ;;
- deb)
- build "$@"
- ;;
- setup)
- build "$@"
- ;;
- test)
- ulimit -t 600 &>/dev/null || true
- ulimit -d 512000 &>/dev/null || true
- ulimit -m 512000 &>/dev/null || true
- LOGGER_DISCARD=1 build test
- ;;
- bench)
- LOGGER_DISCARD=1 build bench | script benchfilter
- ;;
- prerelease)
- go run script/authors.go
- build transifex
- git add -A gui/default/assets/ lib/auto/
- pushd man ; ./refresh.sh ; popd
- git add -A man
- ;;
- noupgrade)
- build -no-upgrade tar
- ;;
- all)
- platforms=(
- darwin-amd64 dragonfly-amd64 freebsd-amd64 linux-amd64 netbsd-amd64 openbsd-amd64 solaris-amd64 windows-amd64
- freebsd-386 linux-386 netbsd-386 openbsd-386 windows-386
- linux-arm linux-arm64 linux-ppc64 linux-ppc64le
- )
- for plat in "${platforms[@]}"; do
- echo Building "$plat"
- goos="${plat%-*}"
- goarch="${plat#*-}"
- dist="tar"
- if [[ $goos == "windows" ]]; then
- dist="zip"
- fi
- build -goos "$goos" -goarch "$goarch" "$dist"
- echo
- done
- ;;
- test-cov)
- ulimit -t 600 &>/dev/null || true
- ulimit -d 512000 &>/dev/null || true
- ulimit -m 512000 &>/dev/null || true
- echo "mode: set" > coverage.out
- fail=0
- # For every package in the repo
- for dir in $(go list ./lib/... ./cmd/...) ; do
- # run the tests
- GOPATH="$(pwd)/Godeps/_workspace:$GOPATH" go test -coverprofile=profile.out $dir
- if [ -f profile.out ] ; then
- # and if there was test output, append it to coverage.out
- grep -v "mode: " profile.out >> coverage.out
- rm profile.out
- fi
- done
- notCovered=$(egrep -c '\s0$' coverage.out)
- total=$(wc -l coverage.out | awk '{print $1}')
- coverPct=$(awk "BEGIN{print (1 - $notCovered / $total) * 100}")
- echo "Total coverage is $coverPct%"
- gocov convert coverage.out | gocov-xml > coverage.xml
- # This is usually run from within Jenkins. If it is, we need to
- # tweak the paths in coverage.xml so cobertura finds the
- # source.
- if [[ "${WORKSPACE:-default}" != "default" ]] ; then
- sed "s#$WORKSPACE##g" < coverage.xml > coverage.xml.new && mv coverage.xml.new coverage.xml
- fi
- ;;
- test-xunit)
- ulimit -t 600 &>/dev/null || true
- ulimit -d 512000 &>/dev/null || true
- ulimit -m 512000 &>/dev/null || true
- (GOPATH="$(pwd)/Godeps/_workspace:$GOPATH" go test -v -race ./lib/... ./cmd/... || true) > tests.out
- go2xunit -output tests.xml -fail < tests.out
- ;;
- *)
- echo "Unknown build command $1"
- ;;
- esac
|