Curl 如何在Jenkins groovy中获取构建URL内容? 案例1

Curl 如何在Jenkins groovy中获取构建URL内容? 案例1,curl,groovy,readfile,jenkins-groovy,Curl,Groovy,Readfile,Jenkins Groovy,在下面的代码中 def url = "${BUILD_URL}console".toURL() def consoleOutput = url.getText('utf-8') Groovy脚本不允许使用语法toURL(): 案例2 另一种方法: print "${BUILD_URL}console" def data = readFile("${BUILD_URL}console") 这会产生错误: java.nio.file.NoSuchFileException: /app/jen

在下面的代码中

def url = "${BUILD_URL}console".toURL()
def consoleOutput = url.getText('utf-8')

Groovy脚本不允许使用语法
toURL()


案例2 另一种方法:

print "${BUILD_URL}console"
def data = readFile("${BUILD_URL}console")
这会产生错误:

java.nio.file.NoSuchFileException: /app/jenkins/workspace/../folder/https:/xxxx.yy.zz.cccc.cloud/job/a/b/job/67/console
在输出之后:

https:/xxxx.yy.zz.cccc.cloud/job/a/b/job/67/console

如何获取Jenkins构建输出的内容?

案例1 正如错误所述,有几种groovy方法在未经管理员事先批准的情况下无法访问。它必须经过一次批准,然后才能一直使用。(如果要在GUI中提供脚本而不是Jenkins文件,可以禁用此Groovy沙盒并使用all方法)

案例2 这个错误是你期望发生的。
BUILD\uURL
保存当前构建的URL,顾名思义。这可以在回声中看到。 在第二个命令中,您可以在
readFile
中使用它
ReadFile
需要一个路径作为参数。由于
BUILD\u URL
不是以
/
开头,因此它被视为相对路径,因此当前工作目录被预先指定。 这导致groovy试图访问路径为
的文件,这显然不起作用

无论哪种方式,我都不建议获取GUI的控制台输出,因为

  • 您还将收到GUI,而不仅仅是控制台输出
  • ../console
    不一定包含整个输出(它只包含最后n个字节;要访问完整的输出,您至少应该查询
    ../consoloillel
相反,我建议使用RESTAPI,如中所述

https:/xxxx.yy.zz.cccc.cloud/job/a/b/job/67/console