|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/bin/bash
-
- # TODO(deklerk) Add integration tests when it's secure to do so. b/64723143
-
- # Fail on any error
- set -eo pipefail
-
- # Display commands being run
- set -x
-
- # cd to project dir on Kokoro instance
- cd git/gocloud
-
- go version
-
- # Set $GOPATH
- export GOPATH="$HOME/go"
- export GOCLOUD_HOME=$GOPATH/src/cloud.google.com/go/
- export PATH="$GOPATH/bin:$PATH"
-
- # Move code into $GOPATH and get dependencies
- mkdir -p $GOCLOUD_HOME
- git clone . $GOCLOUD_HOME
- cd $GOCLOUD_HOME
-
- try3() { eval "$*" || eval "$*" || eval "$*"; }
-
- download_deps() {
- if [[ `go version` == *"go1.11"* ]] || [[ `go version` == *"go1.12"* ]]; then
- export GO111MODULE=on
- # All packages, including +build tools, are fetched.
- try3 go mod download
- else
- # Because we don't provide -tags tools, the +build tools
- # dependencies aren't fetched.
- try3 go get -v -t ./...
-
- go get github.com/jstemmer/go-junit-report
- fi
- }
-
- download_deps
- go install github.com/jstemmer/go-junit-report
- ./internal/kokoro/vet.sh
-
- mkdir $KOKORO_ARTIFACTS_DIR/tests
-
- # Takes the kokoro output log (raw stdout) and creates a machine-parseable xml
- # file (xUnit). Then it exits with whatever exit code the last command had.
- create_junit_xml() {
- last_status_code=$?
-
- cat $KOKORO_ARTIFACTS_DIR/$KOKORO_GERRIT_CHANGE_NUMBER.txt \
- | go-junit-report > $KOKORO_ARTIFACTS_DIR/tests/sponge_log.xml
-
- exit $last_status_code
- }
-
- trap create_junit_xml EXIT ERR
-
- # Run tests and tee output to log file, to be pushed to GCS as artifact.
- go test -race -v -timeout 15m -short ./... 2>&1 \
- | tee $KOKORO_ARTIFACTS_DIR/$KOKORO_GERRIT_CHANGE_NUMBER.txt
|