2016-08-11 2 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

I 할 수 있습니다 export GOPATH=$(pwd)을하지만 그가하지 않습니다 lp,/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 글라이드가 그 작업을 수행합니다. –

답변

1

글라이드 대신 이미지에 제공된 go wrapper를 사용하십시오. 적절한 위치에 심볼릭 링크를 만든 다음 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 폴더에 복제 프로젝트를 복사 할 수 있습니다.

script : 
    - mv /builds/ $GOPATH/src/github.com/company/project