gpt4 book ai didi

curl - 如何在通过 curl 触发构建时设置 Jenkins 构建描述?

转载 作者:行者123 更新时间:2023-12-04 06:59:50 25 4
gpt4 key购买 nike

我正在尝试设置我正在触发的构建的构建描述,因为我正在启动构建,到目前为止我没有运气。

我遇到了一个解决方案( 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"

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

任何想法如何实现?

我找到了其他解决方案,但我对以下解决方案并不满意:
  • Changing Jenkins Build Name & Description through API in JAVA - 这也是一个“后触发解决方案”,它不会像在
  • 之后设置描述一样可靠地工作
  • Modifying Jenkins Description for a build - 我想我可以建立一个支票,只有在它为空时才修改描述,所以我不会覆盖它,但这似乎相当复杂。我认为必须有一个更简单的解决方案,不是吗?
  • 最佳答案

    您始终可以拥有一个变量,并在初始调用时将构建描述传递给该变量。然后在构建结束时,将变量输出到控制台并捕获 Description Setter plugin .

    编辑澄清:

  • 安装 Description Setter plugin .
  • 在 Job Configuration 中,配置一个 String 参数,命名为“ MyDescription ”,默认为空。
  • 在构建步骤的某个地方,“ 执行 Shell ” 或“ 执行 Windows 批处理命令 ” 输入 echo Desc: $MyDescriptionecho Desc: %MyDescription% ,取决于您的操作系统。
  • 在 Post-Build 步骤中,选择“ Set Build Description ”。
  • 将正则表达式设置为 ^Desc: (.*)
  • 将描述设置为 \1
  • 从命令行触发:
  • curl -v -X POST --data-urlencode "MyDescription=This is my desc" "http://[myServer]/job/[jobName]/buildWithParameters"(上面是一行)

    关于curl - 如何在通过 curl 触发构建时设置 Jenkins 构建描述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28503736/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com