繁体   English   中英

使用Golang的gitlab-ci不会创建正确的文件夹结构

[英]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) ,但这没有帮助,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 ./...

使用图像中提供的go包装而不是滑动。 它将在适当的位置创建一个符号链接,然后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"

要解决此问题,可以将克隆的项目复制到GOPATH文件夹。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM