如何在travis-ci上管理构建golang项目

时间:2016-07-20 10:37:58

标签: go travis-ci

我正在开发Golang项目并使用TravisCI。作为依赖工具,使用了Godeps。

通过git push运行测试后,发生了一些错误,如下所示。

# command-line-arguments
cmd/proj/main_test.go:6:2: cannot find package 
"command-line-/vendor/github.com/xxxxx/xxxxx/abc" in any of:
/home/travis/.gimme/versions/go1.6.linux.amd64/src/command-line-/vendor/github.com/xxxxx/xxxxx/xxx 

为什么找不到包裹? 作为构建日志,go get命令似乎运行良好。

我的travis.yml就在这里。

language: go
sudo: false
go:
  - 1.6
  - tip

services:
  - redis-server

env:
  global:
    - secure: "xxxxx"

script:
  - go fmt ./...
  - go vet $(go list ./... | grep -v /vendor/)
  - go test -v cmd/xxxx/*.go -xxxx ${XXXXX}

before_install:
  - go get github.com/tools/godep

branches:
  only:
    - master

go go go版本没问题。 但1.6或1.5版本无法正常运行。

我该如何处理这种情况?

1 个答案:

答案 0 :(得分:1)

Go 1.6管理依赖关系的方式与Go 1.5和以前的版本不同。

1.6介绍了/vendor文件夹。无论何时导入依赖项,如果库存在于/vendor中,则加载库。

该行为是在1.5中引入的,但在该版本中它是实验性的。这意味着您需要使用GO15VENDOREXPERIMENT=1环境变量启用它。

如果您只需要提供1.5和1.6的支持,那么只需在构建1.5个项目时将变量添加到Travis。

如果您还需要为1.5之前的版本扩展支持,那么它会更复杂一些。

相关问题