我正在尝试设置我正在触发的构建的构建描述,因为我正在启动构建,但到目前为止我还没有运气。
我遇到了一个解决方案(将文本添加到 Jenkins 远程 API 触发的构建页面 https://stackoverflow.com/questions/19235943/adding-text-to-the-page-of-a-build-triggered-by-the-jenkins-remote-api),我有点让它以这种方式工作(第一个命令将启动构建,第二个命令将设置最后一个构建的描述):
curl -v -X POST "http://[myServer]/job/[jobName]/build"
curl -v -X POST "http://[myServer]/job/[jobName/lastBuild/submitDescription" --data-urlencode "description=test description"
然而,问题是,如果我刚刚启动的构建排队/没有立即启动,“lastBuild”将不会引用我刚刚启动的构建,而是引用它之前的构建(仍在构建)。
所以我尝试了这样的事情:
payload='json={""description"":""test description""}'
curl -v -X POST -H "Content-Type: application/json" -d $payload "http://[myServer]/job/[jobName]/build"
但它实际上并没有设置描述。
有什么想法可以实现这一点吗?
我找到了其他解决方案,但我不太满意:
-
通过 JAVA 中的 API 更改 Jenkins 构建名称和描述 https://stackoverflow.com/questions/25427622/changing-jenkins-build-name-description-through-api-in-java- 这也是一个“后触发解决方案”,它不会可靠地工作,就像在之后设置描述一样
-
修改构建的 Jenkins 描述 https://stackoverflow.com/questions/17839258/modifying-jenkins-description-for-a-build- 我想我可以建立一个检查,并且只在描述为空时修改描述,这样我就不会覆盖它,但这看起来相当复杂。我想一定有一个更简单的解决方案,不是吗?
您始终可以拥有一个变量,并在初始调用时将构建描述传递到该变量中。然后在构建结束时,将变量输出到控制台并捕获描述 Setter 插件 https://wiki.jenkins-ci.org/display/JENKINS/Description+Setter+Plugin.
编辑以澄清:
- Install 描述 Setter 插件 https://wiki.jenkins-ci.org/display/JENKINS/Description+Setter+Plugin.
- 在作业配置中,配置一个字符串参数,将其命名为“我的描述",将默认值留空。
- 在构建步骤中的某个地方,“执行外壳" or "执行Windows批处理命令" type
echo Desc: $MyDescription
or echo Desc: %MyDescription%
,取决于您的操作系统。
- In the Post-Build steps, select "Set Build Description".
- Set 正则表达式 as
^Desc: (.*)
- Set 描述 as
\1
- 从命令行触发:
curl -v -X POST --data-urlencode "MyDescription=This is my desc" "http://[myServer]/job/[jobName]/buildWithParameters"
(上面是一行)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)