2016-07-20 23 views
0

私はGolangプロジェクトを開発し、TravisCIを使用しています。依存ツールとして、Godepsが使用されています。travis-ciでgolangプロジェクトをビルドする方法

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 versionはOKです。 しかし1.6または1.5のバージョンはうまく動作しません。

どうすればその状況を管理できますか?

+0

依存関係を/ vendorの下でgitにチェックした場合、Travisはgodepを取得する必要はありません。 1.5の場合、GO15VENDOREXPERIMENTのenv varを1に設定する必要がありますが、godep自体は無関係です。 – voutasaurus

答えて

1

Go 1.6の依存関係の管理方法は、Go 1.5およびそれ以前のバージョンとは異なります。

1.6は/vendorフォルダを導入しました。依存関係をインポートするたびに、ライブラリが/vendorに存在する場合は、ライブラリがロードされます。

動作は1.5で導入されましたが、そのバージョンでは実験的でした。これは、環境変数GO15VENDOREXPERIMENT=1を使用して有効にする必要があることを意味します。

1.5と1.6をサポートする必要がある場合は、1.5プロジェクトをビルドするときに変数をTravisに追加するだけです。

1.5より前のバージョンでもサポートを拡張する必要がある場合は、もう少し複雑です。

+0

ありがとうございました。 私はバージョン1.6とtitを設定しましたが、tipバージョンは動作可能です。しかし、1.6はできません。 そして、travisはベンダのディレクトリにパッケージを見つけようとしているようです。 – Harry

+0

@ハリートラビスのログ全体を保持すると便利です。 –

関連する問題