我必须使用它的api创建/更新jenkins作业,因为我的所有作业都使用其他脚本也使用的参数,并且我试图集中脚本,所以当我在一个地方更改它时,更改反映了所有.
目前,如果有人更改了脚本,他们也必须手动编辑jenkins作业的参数.
我看到了远程API用于创建作业的示例,并且能够成功创建测试作业,但是如何编辑现有作业,除了删除它并再次创建它(这不是一个选项,因为我必须维护构建历史记录).
你可以像这样使用python:
from jenkinsapi.jenkins import Jenkins jenkinsSource = 'http://10.52.123.124:8080/' server = Jenkins(jenkinsSource, username = 'XXXXX', password = 'YYYYY') myJob=server.get_job("__test") myConfig=myJob.get_config() print myConfig new = myConfig.replace('clean ', 'string bean ') myJob.update_config(new)
如果其他人也在寻找相同的答案,
看起来解决方案要容易得多,您只需更新config.xml并将更新后的config.xml发布回jenkins,您的工作就会更新.
您还可以将更新的config.xml发布到可以获取的URL config.xml
,以编程方式更新作业的配置.
获取url模式: $JENKINS_SERVER/job/$JOB_NAME/config.xml
详细的doc模式: $JENKINS_SERVER/job/$JOB_NAME/api
示例:https://ci.jenkins-ci.org/job/infra_atlassian-base/api/