我正在使用 Jenkins 在我的服务器上运行测试。
因此,我为每台服务器创建了一个作业并在该作业上运行测试,我想通过简单的 bash 脚本了解我的特定作业是否被禁用/启用?
我可以 ssh 到 Jenkins 服务器,我想从那里运行该脚本,我该怎么做?
我正在使用 Jenkins 在我的服务器上运行测试。
因此,我为每台服务器创建了一个作业并在该作业上运行测试,我想通过简单的 bash 脚本了解我的特定作业是否被禁用/启用?
我可以 ssh 到 Jenkins 服务器,我想从那里运行该脚本,我该怎么做?
从此字符串检查项目状态
curl http://$JENKINS_URL/job/$JOB_NAME/api/json | python -mjson.tool
它将以 json 格式转储作业数据。然后 grep 字符串“可构建”:
这将为您提供项目是否启用或禁用。
"buildable": true, --> Project enabled
"buildable": false, --> Project Disabled
然后做任何你想做的事。
见http://<Your Jenkins>/api
和http://<Your Jenkins>/api/xml
:
<hudson>
...
<job>
<name>...your job name...</name>
...
<color>disabled</color>
</job>
...
有关工作的描述,请参见http://<Your Jenkins>/job/<Your job's name>/api
和http://<Your Jenkins>/job/<Your job's name>/api/xml
。
将您的 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
想添加到现有的答案。要获得更精确的结果,您可以添加 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
}