xpt*_*xpt 5 go gitlab gitlab-ci
我的Gitlab CI Auto DevOps作业失败,原因是
Status: Downloaded newer image for gliderlabs/herokuish:latest
-----> Unable to select a buildpack
ERROR: Job failed: exit code 1
Run Code Online (Sandbox Code Playgroud)
我经历了
而且仍然不确定我应该把buildpack放在哪里。
我的应该是heroku-buildpack-go,我已经不知道该从哪里得到它了。
我的仓库仅包含一个字符README.md,以及“ Hello,操场” main.go。
结论:
感谢David的全面解释,我得以使用正确的buildpack来启动DevOps:
由此得出的结论是,目录树根目录下的单个.go文件不满足自动构建Go项目的激活条件。我建议在上述需求中选择一个依赖管理器,并修改您的项目以支持它。
FTA,我只是做了touch go.mod那么git add与git push和AutoDevops的确开始建设我的GO项目。
但是在我看来,Gitlab AutoDevops无法非常轻松地构建任何GO项目,因为出现以下错误(带有project变量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
Run Code Online (Sandbox Code Playgroud)
更简单的解决方案是使用.gitlab-ci.yml文件代替,该文件记录在
https://blog.boatswain.io/post/build-go-project-with-gitlab-ci/中
(并在Gitlab CI上进行了后续工作-为常规存储库启动Shared Runner) 。
\n\n\n自动构建通过以下两种方式之一创建应用程序的构建:
\n\n\n
\n- 如果有 Dockerfile,它将使用 docker build 创建 Docker 镜像。
\n- 否则,它将使用Herokuish和Heroku buildpacks自动检测应用程序并将其构建到 Docker 映像中。
\n
然后根据Heroku Go buildpack文档查看构建激活标准:
\n\n\n\n\n如果您使用以下任一方法,此构建包会将您的存储库检测为 Go:
\n\n \n
或者更具体地说,对于 godep、govendor 或 GB:
\n\n\n\n\n当应用程序满足以下要求之一时,将使用Heroku Go 构建包:
\n\n \n
由此我得出结论,你的单身.go目录树根目录下的单个文件不符合自动构建 Go 项目的激活标准。我建议在上述要求中选择一个依赖管理器并修改您的项目以支持它。之后 AutoDevops 应该开始构建您的项目。
如果此后您仍然遇到问题,请参阅此调试说明可能会有所帮助:
\n\n\n\n确保项目满足 buildpack 要求后;\n 如果仍然失败,请设置项目变量
\nTRACE=true将启用详细日志记录,\xe2\x80\x8b 可能有助于继续排除故障。
| 归档时间: |
|
| 查看次数: |
1694 次 |
| 最近记录: |