相关疑难解决方法(0)

无法访问 Jenkins 管道中的 $BUILD_LOG

我如何$BUILD_LOG在 Jenkins 管道中访问,或者是否有更好的方法来获取日志输出?

这个答案开始,我一直在尝试访问$BUILD_LOG环境变量,但是当我尝试

echo "${BUILD_LOG, maxLines=50, escapeHtml=false}"
Run Code Online (Sandbox Code Playgroud)

构建错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 11: unexpected token: BUILD_LOG @ line 11, column 29.
                       echo "${BUILD_LOG, maxLines=50, escapeHtml=false}"
Run Code Online (Sandbox Code Playgroud)

如果我尝试

echo "$BUILD_LOG"
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

groovy.lang.MissingPropertyException: No such property: BUILD_LOG for class: groovy.lang.Binding
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?或者这是访问打印输出的错误方式?

jenkins jenkins-pipeline

7
推荐指数
2
解决办法
3791
查看次数

Jenkins:$ {BUILD_LOG,maxLines,escapeHtml}无效

我正在尝试使用"$ {BUILD_LOG,maxLines,escapeHtml}",如下所述: 如何从$ BUILD_LOG变量中获取最后20行?

不幸的是,它对我不起作用.

我收到此错误:

Script1.groovy:114:期待除''\n'之外的任何事情; 无论如何得到它@第114行,第301栏.由用户MYUSERNAME提供

我在这行中的代码是:

          msg.setText("This build (" + build.getFullDisplayName() 
          + " ) contains the following tasks:\n\nTASK\t\t\t  IMPLEMENTER:\n" 
          + taskList + "\n\n\nLink to this 
          build: ${BUILD_URL} \n ${BUILD_LOG, maxLines=9999, escapeHtml=false}" );
Run Code Online (Sandbox Code Playgroud)

如果我把它拿出来,它就可以了.这就是为什么我的猜测," BUILD_LOG "不再工作了?

$ {BUILD_LOG,maxLines = 9999,escapeHtml = false}


编辑:也许作为补充:我试图用PreSend groovy脚本做这个.因为我正在动态构建电子邮件文本. ${BUILD_URL}工作正常,${BUILD_LOG, maxLines=9999, escapeHtml=false}不(对我来说)我正在寻找一个解决方案... msg对象是一个java MimeMessage.

谢谢,丹尼尔

groovy continuous-integration email-attachments jenkins

6
推荐指数
1
解决办法
2112
查看次数

在詹金斯管道上提取字符串的一部分

我在管道脚本中的语法有麻烦。

我正在尝试捕获最后一个斜杠“ /”之后和最后一个句号“”之前的所有内容。在此字符串git@github.com:project / access-server-pd.git(access-server-pd)

下面是我要设置的方式

MYVAR="git@github.com:project/access-server-pd.git" 

NAME=${MYVAR%.*}  # retain the part before the colon
NAME=${NAME##*/}  # retain the part after the last slash
echo $NAME
Run Code Online (Sandbox Code Playgroud)

我目前在管道脚本上设置了三重引号:

  stage('Git Clone') {
  MYVAR="$GIT_REPO"
  echo "$MYVAR"
  NAME="""${MYVAR%.*}"""
  echo "$NAME"
Run Code Online (Sandbox Code Playgroud)

但是我收到一个关于“”的意外令牌。错误。我该怎么写才能使它正常工作?

更新:此命令可以解决问题:

echo "git@github.com:project/access-server-pd.git" | sed 's#.*/\([^.]*\).*#\1#'
Run Code Online (Sandbox Code Playgroud)

现在,我只需要找到适当的语法来创建一个变量来存储该值。

shell substring jenkins jenkins-pipeline

5
推荐指数
1
解决办法
1万
查看次数