拥有Golang项目和Go工作区。我正在尝试运行我的测试,但是我遇到了以下错误:
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)
问题来自克隆项目时,它在此文件夹中执行:
克隆到'/ builds / compagny / project'......
$GOPATH is /go
然后在该文件夹中我应该有:src/github.com/compagny/project
我可以:export GOPATH=$(pwd)
,但这没有帮助,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 :(得分:2)
使用图像中提供的go包装而不是滑动。它将在适当的位置创建一个符号链接,然后go get
您的依赖项。 E.g。
build-my-project:
image: golang:1.6
stage: build
script:
- go-wrapper download
- go build
因此,go包装器知道项目的正确路径,您需要将其作为导入注释添加到main.go
中,如下所示:
package main // import "github.com/your/repo"
答案 1 :(得分:0)
要解决此问题,您可以将克隆项目复制到GOPATH文件夹。
script :
- mv /builds/ $GOPATH/src/github.com/company/project