Gitlab CI-Auto DevOps作业失败,无法为Go项目选择构建包?

时间:2018-11-08 19:45:24

标签: go gitlab gitlab-ci

我的Gitlab CI Auto DevOps作业失败,

vbar_stack

我经历过

仍然不确定我应该把buildpack放在哪里。

我的应该是Status: Downloaded newer image for gliderlabs/herokuish:latest -----> Unable to select a buildpack ERROR: Job failed: exit code 1 ,我已经不知道该从哪里得到它了。

我的仓库仅包含一个字符heroku-buildpack-go和一个“你好,游乐场” README.md

结论:

由于David的全面解释,我得以使用正确的buildpack来启动DevOps:

  

由此我可以得出结论,目录树根目录中的单个.go文件不符合自动构建Go项目的激活条件。我建议在上述需求中选择一个依赖管理器,并修改您的项目以支持它。

FTA,我刚完成main.go,然后执行touch go.modgit add,AutoDevops确实开始构建我的GO项目。

但是在我看来,Gitlab AutoDevops无法非常轻松地构建任何GO项目,因为出现以下错误(项目变量为git push):

TRACE=true

更简单的解决方案是改用... !! The go.mod file for this project does not specify a Go version !! !! Defaulting to go1.11.1 !! !! For more details see: https://devcenter.heroku.com/articles/go-apps-with-modules#build-configuration !! -----> Installing go1.11.1 -----> Fetching go1.11.1.linux-amd64.tar.gz... done !! Installing package '.' (default) !! !! To install a different package spec add a comment in the following form to your `go.mod` file: !! // +heroku install ./cmd/... !! !! For more details see: https://devcenter.heroku.com/articles/go-apps-with-modules#build-configuration !! -----> Running: go install -v -tags heroku . go: cannot determine module path for source directory /tmp/build (outside GOPATH, no import comments) ERROR: Job failed: exit code 1 文件,该文件记录在
https://blog.boatswain.io/post/build-go-project-with-gitlab-ci/
(并在Gitlab CI - Start Shared Runner for normal repos进行跟踪)。

1 个答案:

答案 0 :(得分:1)

来自AutoDevops documentation

  

自动构建通过以下两种方式之一创建应用程序的构建:

     
      
  • 如果有Dockerfile,它将使用docker build创建一个Docker映像。
  •   
  • 否则,它将使用HerokuishHeroku buildpacks自动检测应用程序并将其构建为Docker映像。
  •   

然后根据Heroku Go buildpack文档查看构建激活条件:

  

如果您使用以下任何一种,则此buildpack会将您的存储库检测为Go:

     

more specifically for godep, govendor or GB

  

当应用程序满足以下要求之一时,将使用Heroku Go buildpack

     
      
  • 有一个Godeps/Godeps.json文件,标识该应用程序由godep管理;
  •   
  • 有一个vendor/vendor.json文件,标识该应用程序由govendor管理;
  •   
  • 有一个src目录,该目录具有子目录,包含一个或多个.go文件,标识该应用程序由gb管理。
  •   

由此我可以得出结论,目录树根目录中的单个.go文件不满足自动构建Go项目的激活条件。我建议在上述需求中选择一个依赖管理器,并修改您的项目以支持它。之后,AutoDevops应该开始构建您的项目。

如果之后仍然遇到问题,此debugging note可能会有所帮助:

  

确保项目符合buildpack要求后;   如果仍然失败,则设置项目变量TRACE=true将启用详细日志记录,这可能有助于继续进行故障排除。