代码之家  ›  专栏  ›  技术社区  ›  xpt

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

  •  4
  • xpt  · 技术社区  · 8 年前

    Status: Downloaded newer image for gliderlabs/herokuish:latest
           -----> Unable to select a buildpack
    ERROR: Job failed: exit code 1
    

    我经历过

    我的应该是 heroku-buildpack-go 我不知道从哪里得到的。

    我的回购协议只有一个字符 README.md ,还有“你好,游乐场” main.go .

    多亏了David的全面解释,我才得以用正确的buildpack启动DevOps:

    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
    

    更简单的解决方法是使用 .gitlab-ci.yml 而不是文件,记录在
    https://blog.boatswain.io/post/build-go-project-with-gitlab-ci/
    Gitlab CI - Start Shared Runner for normal repos ).

    1 回复  |  直到 7 年前
        1
  •  2
  •   David Planella    8 年前

    从 AutoDevops documentation

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

    然后根据 Heroku Go buildpack 文档:

    或者 more specifically for godep, govendor or GB :

    Heroku Go构建包

    • 有一个 Godeps/Godeps.json 文件,将应用程序标识为由 godep
    • 有一个 vendor/vendor.json 文件,将应用程序标识为由 govendor
    • 有一个 src 包含子目录的目录包含一个或多个.go文件,将应用程序标识为由 gb

    由此我可以得出结论,你的单身 .go

    如果你在那之后仍然有问题,这个 debugging note

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