aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Lange <fjl@users.noreply.github.com>2018-10-08 22:37:06 +0800
committerGitHub <noreply@github.com>2018-10-08 22:37:06 +0800
commit72a076840bea4a3258a3a8d9a7aeb750fcc2ac02 (patch)
tree0a5f253aea328a308033d64d24caae6a5a239121
parent459278cd57a6188aea3991db3c7f83df70282ad8 (diff)
downloaddexon-72a076840bea4a3258a3a8d9a7aeb750fcc2ac02.tar.gz
dexon-72a076840bea4a3258a3a8d9a7aeb750fcc2ac02.tar.zst
dexon-72a076840bea4a3258a3a8d9a7aeb750fcc2ac02.zip
travis, build: speed up CI runs (#17854)
* travis: exclude non-test jobs for PRs We don't usually look at these builders and not starting them removes ~15min of build time. * build: don't run vet before tests Recent versions of Go run vet during 'go test' and we have a dedicated lint job. * build: use -timeout 5m for tests Tests sometimes hang on Travis. CI runs are aborted after 10min with no output. Adding the timeout means we get to see the stack trace for timeouts.
-rw-r--r--.travis.yml25
-rw-r--r--build/ci.go11
2 files changed, 15 insertions, 21 deletions
diff --git a/.travis.yml b/.travis.yml
index d6cd7d51c..69535b7ef 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -45,7 +45,8 @@ matrix:
- go run build/ci.go lint
# This builder does the Ubuntu PPA upload
- - os: linux
+ - if: type = push
+ os: linux
dist: trusty
go: 1.11.x
env:
@@ -63,7 +64,8 @@ matrix:
- go run build/ci.go debsrc -signer "Go Ethereum Linux Builder <geth-ci@ethereum.org>" -upload ppa:ethereum/ethereum
# This builder does the Linux Azure uploads
- - os: linux
+ - if: type = push
+ os: linux
dist: trusty
sudo: required
go: 1.11.x
@@ -96,7 +98,8 @@ matrix:
- go run build/ci.go archive -arch arm64 -type tar -signer LINUX_SIGNING_KEY -upload gethstore/builds
# This builder does the Linux Azure MIPS xgo uploads
- - os: linux
+ - if: type = push
+ os: linux
dist: trusty
services:
- docker
@@ -123,7 +126,8 @@ matrix:
- go run build/ci.go archive -arch mips64le -type tar -signer LINUX_SIGNING_KEY -upload gethstore/builds
# This builder does the Android Maven and Azure uploads
- - os: linux
+ - if: type = push
+ os: linux
dist: trusty
addons:
apt:
@@ -160,7 +164,8 @@ matrix:
- go run build/ci.go aar -signer ANDROID_SIGNING_KEY -deploy https://oss.sonatype.org -upload gethstore/builds
# This builder does the OSX Azure, iOS CocoaPods and iOS Azure uploads
- - os: osx
+ - if: type = push
+ os: osx
go: 1.11.x
env:
- azure-osx
@@ -188,7 +193,8 @@ matrix:
- go run build/ci.go xcode -signer IOS_SIGNING_KEY -deploy trunk -upload gethstore/builds
# This builder does the Azure archive purges to avoid accumulating junk
- - os: linux
+ - if: type = cron
+ os: linux
dist: trusty
go: 1.11.x
env:
@@ -197,10 +203,3 @@ matrix:
submodules: false # avoid cloning ethereum/tests
script:
- go run build/ci.go purge -store gethstore/builds -days 14
-
-notifications:
- webhooks:
- urls:
- - https://webhooks.gitter.im/e/e09ccdce1048c5e03445
- on_success: change
- on_failure: always
diff --git a/build/ci.go b/build/ci.go
index c5a107e1d..1bbc94471 100644
--- a/build/ci.go
+++ b/build/ci.go
@@ -320,9 +320,7 @@ func goToolArch(arch string, cc string, subcmd string, args ...string) *exec.Cmd
// "tests" also includes static analysis tools such as vet.
func doTest(cmdline []string) {
- var (
- coverage = flag.Bool("coverage", false, "Whether to record code coverage")
- )
+ coverage := flag.Bool("coverage", false, "Whether to record code coverage")
flag.CommandLine.Parse(cmdline)
env := build.Env()
@@ -332,14 +330,11 @@ func doTest(cmdline []string) {
}
packages = build.ExpandPackagesNoVendor(packages)
- // Run analysis tools before the tests.
- build.MustRun(goTool("vet", packages...))
-
// Run the actual tests.
- gotest := goTool("test", buildFlags(env)...)
// Test a single package at a time. CI builders are slow
// and some tests run into timeouts under load.
- gotest.Args = append(gotest.Args, "-p", "1")
+ gotest := goTool("test", buildFlags(env)...)
+ gotest.Args = append(gotest.Args, "-p", "1", "-timeout", "5m")
if *coverage {
gotest.Args = append(gotest.Args, "-covermode=atomic", "-cover")
}