小编典典

通过curl触发构建时如何设置Jenkins构建说明?

jenkins

我正在尝试设置要触发的版本的版本说明,因为我正在启动该版本,到目前为止我还没有运气。

我遇到了一个解决方案将文本添加到由Jenkins远程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"

但这实际上并没有设置描述。

有什么想法可以实现吗?


阅读 418

收藏
2020-07-25

共1个答案

小编典典

您始终可以拥有一个变量,并在初始调用时将构建说明传递到该变量中。然后在构建结束时,将变量输出到控制台并使用 Description Setterplugin 捕获。

编辑以澄清:

  • 安装 Description Setter插件
  • 在作业配置中,配置一个String参数,将其称为“ MyDescription ”,将默认值保留为空白。
  • 在构建步骤中的某个位置,“ Execute Shell ”或“ Execute Windows Batch Command ”类型echo Desc: $MyDescriptionecho Desc: %MyDescription%取决于您的操作系统。
  • 在构建后步骤中,选择“ 设置构建描述 ”。
    • 正则表达式 设置为^Desc: (.*)
    • 说明 设置为\1
  • 从命令行触发:

curl -v -X POST --data-urlencode "MyDescription=This is my desc" "http://[myServer]/job/[jobName]/buildWithParameters"
(上面是一行)

2020-07-25