3

我正在使用 Jenkins 在我的服务器上运行测试。

因此,我为每台服务器创建了一个作业并在该作业上运行测试,我想通过简单的 bash 脚本了解我的特定作业是否被禁用/启用?

我可以 ssh 到 Jenkins 服务器,我想从那里运行该脚本,我该怎么做?

4

4 回答 4

4

从此字符串检查项目状态

curl http://$JENKINS_URL/job/$JOB_NAME/api/json | python -mjson.tool

它将以 json 格式转储作业数据。然后 grep 字符串“可构建”:

这将为您提供项目是否启用或禁用。

"buildable": true, --> Project enabled
"buildable": false,  --> Project Disabled

然后做任何你想做的事。

于 2018-03-07T10:51:17.527 回答
3

http://<Your Jenkins>/apihttp://<Your Jenkins>/api/xml

<hudson>
  ...
  <job>
    <name>...your job name...</name>
    ...
    <color>disabled</color>
  </job>
  ...

有关工作的描述,请参见http://<Your Jenkins>/job/<Your job's name>/apihttp://<Your Jenkins>/job/<Your job's name>/api/xml

于 2016-06-01T14:36:55.870 回答
1

将您的 jenkins 服务器 URL 放在浏览器中,并将 /api/xml 放在您的 URL 前面。

例子:

https://xyz.jenkins.com/view/all/api/xml

或者

要获得 json 的结果,只需在上述 URL 中放置 json 而不是 xml

https://xyz.jenkins.com/view/all/api/json
于 2019-05-09T06:56:05.513 回答
0

想添加到现有的答案。要获得更精确的结果,您可以添加 xpath 过滤器

http://<Your Jenkins>/job/<job name>/api/xml?xpath=//disabled

或者

http://<Your Jenkins>/job/<job name>/api/xml?xpath=//buildable

作为回应,您只会得到一行:

<disabled>true</disabled>

过滤也适用于 json api 输出:

http://<Your Jenkins>/job/<job name>/api/json?tree=disabled&pretty=true

输出:

{
  "_class" : "hudson.model.FreeStyleProject",
  "disabled" : true
}
于 2021-03-19T21:32:56.273 回答