Permalink
Switch branches/tags
v2.2.0-alpha.00000000 v2.1.0-beta.20181015 v2.1.0-beta.20181008 v2.1.0-beta.20181001 v2.1.0-beta.20180924 v2.1.0-beta.20180917 v2.1.0-beta.20180910 v2.1.0-beta.20180904 v2.1.0-beta.20180827 v2.1.0-alpha.20180730 v2.1.0-alpha.20180702 v2.1.0-alpha.20180604 v2.1.0-alpha.20180507 v2.1.0-alpha.20180416 v2.1.0-alpha.00000000 v2.0.6 v2.0.6-rc.1 v2.0.5 v2.0.4 v2.0.3 v2.0.2 v2.0.1 v2.0.0 v2.0-rc.1 v2.0-beta.20180326 v2.0-beta.20180319 v2.0-beta.20180312 v2.0-beta.20180305 v2.0-alpha.20180212 v2.0-alpha.20180129 v2.0-alpha.20180122 v2.0-alpha.20180116 v2.0-alpha.20171218 v2.0-alpha.20171218-plus-left-join-fix v1.2-alpha.20171211 v1.2-alpha.20171204 v1.2-alpha.20171113 v1.2-alpha.20171026 v1.2-alpha.20170901 v1.1.9 v1.1.9-rc.1 v1.1.8 v1.1.7 v1.1.6 v1.1.5 v1.1.4 v1.1.3 v1.1.2 v1.1.1 v1.1.0 v1.1.0-rc.1 v1.1-beta.20170928 v1.1-beta.20170921 v1.1-beta.20170907 v1.1-alpha.20170817 v1.1-alpha.20170810 v1.1-alpha.20170803 v1.1-alpha.20170720 v1.1-alpha.20170713 v1.1-alpha.20170629 v1.1-alpha.20170622 v1.1-alpha.20170608 v1.1-alpha.20170601 v1.0.7 v1.0.6 v1.0.5 v1.0.4 v1.0.3 v1.0.2 v1.0.1 v1.0 v1.0-rc.3 v1.0-rc.2 v1.0-rc.1 v0.1-alpha beta-20170420 beta-20170413 beta-20170406 beta-20170330 beta-20170323 beta-20170309 beta-20170223 beta-20170216 beta-20170209 beta-20170126 beta-20170112 beta-20170105 beta-20161215 beta-20161208 beta-20161201 beta-20161110 beta-20161103 beta-20161027 beta-20161013 beta-20161006 beta-20160929 beta-20160915 beta-20160908 beta-20160829 beta-20160728
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
executable file 55 lines (47 sloc) 2.07 KB
#!/usr/bin/env bash
set -euo pipefail
source "$(dirname "${0}")/teamcity-support.sh"
run export BUILDER_HIDE_GOPATH_SRC=1
run mkdir -p artifacts
definitely_ccache
env=(
"GITHUB_API_TOKEN=$GITHUB_API_TOKEN"
"BUILD_VCS_NUMBER=$BUILD_VCS_NUMBER"
"TC_BUILD_ID=$TC_BUILD_ID"
"TC_SERVER_URL=$TC_SERVER_URL"
"COCKROACH_NIGHTLY_STRESS=true"
"PKG=$PKG"
"GOFLAGS=${GOFLAGS:-}"
"TAGS=${TAGS:-}"
"STRESSFLAGS=${STRESSFLAGS:-}"
)
build/builder.sh env "${env[@]}" bash <<'EOF'
set -euxo pipefail
go install ./pkg/cmd/github-post
# We're going to run stress, pipe its output to test2json to add a bit of
# structure, then pipe that to our github-post script which creates issues for
# failed tests.
# Note that we don't stream the results into test2json, as the tool generally
# expects. We don't stream because we want the failing stress output to make it
# to Team City's build log (i.e. to the stdout of this file).
# The streaming would be meaningless for the purposes of the timing information
# recorded by test2json because stress captures the test output and prints it
# all at once. github-post compensates for this.
# TODO(andrei): Something we could do is teach the `make stress` target (or a
# new target) to pass the test2son invocation to the `go test -exec` flag (note
# that test2json knows how to take a test binary and flags). This way we could
# get rid of some logic specific to supporting stress output in github-post.
# But then the problem would be that the TC build log would contain json, which
# is not the most readable. So I guess we'd also need a json2test tool to strip
# the json and go back to raw logs.
#
# We've set pipefail, so the exit status is going to come from stress if there
# are test failures.
# Use an `if` so that the `-e` option doesn't stop the script on error.
if ! make stress PKG="$PKG" TESTTIMEOUT=40m GOFLAGS="$GOFLAGS" TAGS="$TAGS" STRESSFLAGS="-maxruns 100 -maxfails 1 -stderr $STRESSFLAGS" 2>&1 \
| tee artifacts/stress.log; then
exit_status=${PIPESTATUS[0]}
go tool test2json -t < artifacts/stress.log | github-post
exit $exit_status
fi
EOF