我正在使用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));
}
使用AbstractItem#updateByXml进行更新。还请注意,您可以使用REST
API和Jenkins CLI通过XML创建/更新作业。
我必须使用jenkins的api创建/更新一个jenkins作业,因为我的所有作业都使用了其他脚本也使用的参数,并且我试图将脚本集中起来,这样当我在一个地方更改它时,所做的更改就会反映在所有的脚本中。 当前,如果有人更改了脚本,他们也必须手动编辑jenkins作业的参数。 我看到了用于创建作业的远程API的示例,并且能够成功地创建测试作业,但是除了删除并重新创建一个现有作业之外,我如何编辑它(这不
我有一份詹金斯的工作,计划在特定的时间进行。我想以编程方式修改该计时。 我试图通过安装Schedule build插件并使用。但这将使作业处于保持java线程的静默期。我希望在不将其置于静默期的情况下修改计划条目。
我正在用一些初始数据绘制一个条形图,然后在单击按钮时尝试更新。我收到错误“未捕获的类型错误:无法读取未定义的属性'长度'”。单击更新后,将发生错误。如何解决此问题并启用更新功能以绘制新的条形图? D3代码:
问题内容: 我正在使用Jenkins 1.461,使用SVN轮询时遇到问题。我的存储库URL的格式为svn + ssh:// __ ***。我已将Jenkins配置为每5分钟轮询一次更改。发生的情况是每5分钟检测到更改: 从2012年5月2日开始8:26:24 PM在2012年5月2日8:26:25 PM收到XXXXXXXXX的SCM轮询请求svn + ssh:// XXXX / svn / XX
如何在不丢失任何作业或配置的情况下,从作为Linux服务运行的现有jenkins安装更新jenkins?
问题内容: 我在Mac上将Jenkins作为CI服务器运行。在具有用户jenkins的典型设置的情况下,它在macOS 10.12上运行良好。 今天,我将macOS升级到10.13(High Sierra)。升级过程完成后,Jenkins无法启动。此外,系统上没有用户詹金斯。所有Jenkins文件都存在,但是在设置->用户和组中没有jenkins用户。如果我尝试在终端中使用jenkins用户,例如