gitlab-ci 与 Golang 不创建正确的文件夹结构
gitlab-ci with Golang do not create the right folder structure
有一个 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)
,但这无济于事,请期待一个 /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 ./...
解决方法是将克隆的项目复制到 GOPATH 文件夹。
script :
- mv /builds/ $GOPATH/src/github.com/company/project
使用图片中提供的 go wrapper 而不是 glide。它将在适当的位置创建一个符号链接,然后 go get
您的依赖项。例如
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"
有一个 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)
,但这无济于事,请期待一个 /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 ./...
解决方法是将克隆的项目复制到 GOPATH 文件夹。
script :
- mv /builds/ $GOPATH/src/github.com/company/project
使用图片中提供的 go wrapper 而不是 glide。它将在适当的位置创建一个符号链接,然后 go get
您的依赖项。例如
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"