Add error handling

This commit is contained in:
Alexander Neumann 2016-04-17 18:39:19 +02:00
parent aa43b69651
commit b2846ea49d

View file

@ -138,21 +138,39 @@ func (env *TravisEnvironment) Prepare() error {
msg("preparing environment for Travis CI\n") msg("preparing environment for Travis CI\n")
run("go", "get", "golang.org/x/tools/cmd/cover") for _, pkg := range []string{
run("go", "get", "github.com/mattn/goveralls") "golang.org/x/tools/cmd/cover",
run("go", "get", "github.com/pierrre/gotestcover") "github.com/mattn/goveralls",
env.getMinio() "github.com/pierrre/gotestcover",
env.runMinio() } {
err := run("go", "get", pkg)
if err != nil {
return err
}
}
if err := env.getMinio(); err != nil {
return err
}
if err := env.runMinio(); err != nil {
return err
}
if runtime.GOOS == "darwin" { if runtime.GOOS == "darwin" {
// install the libraries necessary for fuse // install the libraries necessary for fuse
run("brew", "update") if err := run("brew", "update"); err != nil {
run("brew", "cask", "install", "osxfuse") return err
}
if err := run("brew", "cask", "install", "osxfuse"); err != nil {
return err
}
} }
if *runCrossCompile { if *runCrossCompile {
// only test cross compilation on linux with Travis // only test cross compilation on linux with Travis
run("go", "get", "github.com/mitchellh/gox") if err := run("go", "get", "github.com/mitchellh/gox"); err != nil {
return err
}
if runtime.GOOS == "linux" { if runtime.GOOS == "linux" {
env.goxArch = []string{"386", "amd64"} env.goxArch = []string{"386", "amd64"}
if !strings.HasPrefix(runtime.Version(), "go1.3") { if !strings.HasPrefix(runtime.Version(), "go1.3") {
@ -169,9 +187,13 @@ func (env *TravisEnvironment) Prepare() error {
v := runtime.Version() v := runtime.Version()
if !strings.HasPrefix(v, "go1.5") && !strings.HasPrefix(v, "go1.6") { if !strings.HasPrefix(v, "go1.5") && !strings.HasPrefix(v, "go1.6") {
run("gox", "-build-toolchain", err := run("gox", "-build-toolchain",
"-os", strings.Join(env.goxOS, " "), "-os", strings.Join(env.goxOS, " "),
"-arch", strings.Join(env.goxArch, " ")) "-arch", strings.Join(env.goxArch, " "))
if err != nil {
return err
}
} }
} }
@ -299,10 +321,15 @@ func (env *TravisEnvironment) RunTests() error {
} }
// run the build script // run the build script
run("go", "run", "build.go") if err := run("go", "run", "build.go"); err != nil {
return err
}
// run the tests and gather coverage information // run the tests and gather coverage information
runWithEnv(env.env, "gotestcover", "-coverprofile", "all.cov", "cmds/...", "restic/...") err = runWithEnv(env.env, "gotestcover", "-coverprofile", "all.cov", "cmds/...", "restic/...")
if err != nil {
return err
}
return runGofmt() return runGofmt()
} }
@ -315,8 +342,7 @@ func (env *AppveyorEnvironment) Prepare() error {
} }
func (env *AppveyorEnvironment) RunTests() error { func (env *AppveyorEnvironment) RunTests() error {
run("go", "run", "build.go", "-v", "-T") return run("go", "run", "build.go", "-v", "-T")
return nil
} }
func (env *AppveyorEnvironment) Teardown() error { func (env *AppveyorEnvironment) Teardown() error {
@ -397,9 +423,9 @@ func runGofmt() error {
return nil return nil
} }
func run(command string, args ...string) { func run(command string, args ...string) error {
msg("run %v %v\n", command, strings.Join(args, " ")) msg("run %v %v\n", command, strings.Join(args, " "))
runWithEnv(nil, command, args...) return runWithEnv(nil, command, args...)
} }
// runWithEnv calls a command with the current environment, except the entries // runWithEnv calls a command with the current environment, except the entries