使用Groovy Jenkins API更新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));
}
奥利弗·冈雅(Oliver Gonja)

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Groovy Init创建Jenkins WorkflowMultibranchProject作业

使用 REST API 远程创建 Jenkins 作业

使用Pipeline Job和Groovy脚本创建新的Jenkins作业

使用groovy向jenkins作业添加其他参数

使用Groovy在与父节点相同的节点上触发Jenkins作业

从 groovy 脚本触发参数化 Jenkins 作业

使用for循环的并行jenkins作业

使用Jenkins Groovy脚本创建Unix Slave

使用Groovy进行Jenkins管道模拟

在 Jenkins 管道中使用外部 Groovy 文件

Jenkins:使用Groovy清洁工作区

使用Jenkins Job DSL在Jenkins中使用Artifactory配置作业

使用Groovy Postbuild操作从Jenkins作业发送电子邮件

在jenkins作业中,使用当前工作区中的系统groovy创建文件

如何使用groovy脚本控制台杀死Jenkins作业中止后留下的进程?

如何使用 groovy 脚本为现有的 jenkins 作业添加执行批处理命令

如何使用Groovy访问Jenkins服务器的用户特定视图的作业?

使用Process DSL插件groovy脚本创建一个新的Jenkins作业

使用 groovy 脚本在文件夹内执行 jenkins 作业时如何获取 JOB_NAME?

在Jenkins构建作业中使用ANT属性

使用变量从Jenkins Pipeline构建作业

在Jenkins Groovy Script中获取所有管道作业

Groovy脚本来更改jenkins作业中的svn url

jenkins:通过Groovy API设置根URL

使用jenkins更新kubernetes部署

如何使用Groovy在Jenkins中创建新项目

Jenkins [Groovy]注解抓图不能在沙箱中使用

是否可以在没有 Groovy 的情况下使用 Jenkins

在Jenkins上使用Groovy配置Amazon-ecs从属插件