2016-08-11 6 views
3

GolangプロジェクトとGoワークスペースがあります。私は私のテストを実行しようとしているが、私は次のエラーを持っている:Golangとgitlab-ciは正しいフォルダ構造を作成しません。

api/server.go:8:2: cannot find package "github.com/braintree/manners" in any of: 
    /usr/local/go/src/github.com/braintree/manners (from $GOROOT) 
    /go/src/github.com/braintree/manners (from $GOPATH) 

それがこのフォルダにそれをしないプロジェクトをクローニングする場合、問題はそれから来ている:

「/ビルドしますへのクローニング/ COMPAGNY /プロジェクトの...

$GOPATH is /go 

し、そのフォルダ内の私のような何かを持っている必要があります。src/github.com/compagny/project

私ができる:export GOPATH=$(pwd)を、それは、彼はしていませんlp、Goには/ srcフォルダがあります。

しかし、私はgitlab-ciがプロジェクトをクローンする場所を持っていませんか?

私gitlab-ci.yml:

stages: 
    - build 
    - test 

build-my-project: 
    image: golang:1.6 
    stage: build 
    script: 
    - go get -u github.com/Masterminds/glide 
    - glide install 
    - go build 

test-my-project: 
    image: golang:1.6 
    stage: test 
    script: 
    - go get -u github.com/Masterminds/glide 
    - glide install 
    - go test -v ./... 
+0

あなたが取りに行く '実行する必要があります... 'プロジェクトの依存関係を読み込みます。 – Martin

+0

@mgansler glideはその仕事をしています –

答えて

1

グライダーの代わりに画像に記載されているゴーラッパーを使用してください。適切な場所にシンボリックリンクが作成され、次にgo getあなたの依存関係が作成されます。例えば。

build-my-project: 
    image: golang:1.6 
    stage: build 
    script: 
    - go-wrapper download 
    - go build 

ので、外出先ラッパーは、あなたがそうのようなあなたのmain.goで輸入コメントとしてこれを追加する必要がありますあなたのプロジェクトの適切なパスを知っている:

package main // import "github.com/your/repo" 
0

回避策について、あなたはGOPATHフォルダにクローン化されたプロジェクトをコピーすることができます。

関連する問題