簡體   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