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

bjzhanghao 阅读:80 2025-06-02 22:19:02 评论:0

我无法在 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 


标签:Jenkins
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号