使用Groovy Jenkins API更新Jenkins作业

时间:2015-07-07 15:00:13

标签: api groovy jenkins

我正在使用Groovy脚本控制台在Jenkins上创建和更新作业。使用此处记录的API

http://javadoc.jenkins-ci.org/

我已经发现了如何使用创建作业     createProjectFromXML(String name, InputStream xml)

但是如果作业已经存在,则此方法将失败。如何使用新的xml更新现有作业?

更新

根据@ ogondza的回答,我使用以下内容创建并更新作业

import jenkins.*
import jenkins.model.*
import hudson.*
import hudson.model.*
import java.io.*
import java.nio.charset.StandardCharsets
import javax.xml.transform.stream.*

config = """......My config.xml......"""

InputStream stream = new ByteArrayInputStream(config.getBytes(StandardCharsets.UTF_8));

job = Jenkins.getInstance().getItemByFullName("job_name", AbstractItem)

if (job == null) {
  println "Constructing job"
  Jenkins.getInstance().createProjectFromXML("job_name", stream);
}
else {
  println "Updating job"
  job.updateByXml(new StreamSource(stream));
}

1 个答案:

答案 0 :(得分:3)

使用AbstractItem#updateByXml进行更新。另请注意,您可以使用REST API和Jenkins CLI通过XML创建/更新作业。