gpt4 book ai didi

go - 带有 Golang 的 gitlab-ci 不会创建正确的文件夹结构

转载 作者:IT王子 更新时间:2023-10-29 01:09:46 26 4
gpt4 key购买 nike

拥有一个 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 expect a/src folder.

但我无法控制 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 ./...

最佳答案

使用图像中提供的 go wrapper 代替 glide。它将在适当的位置创建一个符号链接(symbolic link),然后 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"

关于go - 带有 Golang 的 gitlab-ci 不会创建正确的文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38886311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com