【发布时间】:2015-07-07 15:00:12
【问题描述】:
我正在考虑使用 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));
}
【问题讨论】:
-
你想在工作中更新什么?
-
任何东西。构建步骤、安装的工具、工件、SSHPlublisher 设置等。我已经在 xml 中有这些设置,如果 xml 发生更改,我想更新作业。