我的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.mod
和git 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进行跟踪)。
答案 0 :(得分:1)
自动构建通过以下两种方式之一创建应用程序的构建:
- 如果有Dockerfile,它将使用docker build创建一个Docker映像。
- 否则,它将使用Herokuish和Heroku buildpacks自动检测应用程序并将其构建为Docker映像。
然后根据Heroku Go buildpack文档查看构建激活条件:
如果您使用以下任何一种,则此buildpack会将您的存储库检测为Go:
或more specifically for godep, govendor or GB:
当应用程序满足以下要求之一时,将使用Heroku Go buildpack:
由此我可以得出结论,目录树根目录中的单个.go
文件不满足自动构建Go项目的激活条件。我建议在上述需求中选择一个依赖管理器,并修改您的项目以支持它。之后,AutoDevops应该开始构建您的项目。
如果之后仍然遇到问题,此debugging note可能会有所帮助:
确保项目符合buildpack要求后; 如果仍然失败,则设置项目变量
TRACE=true
将启用详细日志记录,这可能有助于继续进行故障排除。