go - 在 Jenkins 中构建的路径名不正确

标签 go jenkins go-modules

我无法在 Jenkins 上构建我的应用程序。我尝试在本地构建它并且它可以工作。我的应用程序使用 go wrapper 和 go mod

这是 Jenkins 根据失败得出的结果:

./build.sh: 6: ./build.sh: [[: not found
go get .: path /var/lib/jenkins/workspace/_XXX_develop is not a package in module rooted at /var/lib/jenkins/workspace/_XXX_develop
ERROR: go get

我像这样使用自定义 build.sh(仅在出现问题时从第 1-6 行开始):
CWD=$(cd . && pwd)
PRG=$0
BASEDIR=$(cd "$(dirname ${PRG})" && pwd)
BASENAME=$(basename ${PRG})
APPNAME=${BASENAME}
while [[ -L "$BASEDIR/$BASENAME" ]]; do
    PRG=$(readlink "$BASEDIR/$BASENAME")
    BASEDIR=$(cd "$BASEDIR" && cd "$(dirname ${PRG})" && pwd)
    BASENAME=$(basename "$PRG")
done

我从不使用 $GOPATH,因为我使用的是 go-mod。我已经很容易地使用了这个 build.sh 和 jenkinsfile,但是在更新到 1.13.1 之后,它似乎出现了问题。

最佳答案

考虑到 [[zsh/ksh/bash built-in ,请确保您的脚本使用 bash 运行。

它应该以正确的 shebang 开头:

#!/bin/bash

关于go - 在 Jenkins 中构建的路径名不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58296485/

相关文章:

jenkins - Jenkins Docker Push到Google Cloud失败并发生异常

go - 在 Goland IDE 中导入本地 Go 模块

Go mod tidy 删除了 go.mod 中的 linter

go - 使Firestore仅返回customer_id小于1000的用户

go - 如何在golang中导入本地包?

Jenkins 使用错误版本的 Ruby(rvm)

go - 在 Go 中使用测试依赖项但防止导出它们的最佳方法

go - 为什么 CGO_ENABLE 会对虚拟内存产生如此大的影响?

go - 如何使用OpenCensus跟踪称为函数的子函数?

git - Jenkins GitHub 插件无法选择我的凭据