一尘不染

Jenkins插件:以编程方式创建新工作

jenkins

如何在插件中创建新的Jenkins作业?

我有一个Jenkins插件,可监听消息队列,并在消息到达时触发新事件以创建新作业(或开始运行)。

我正在寻找类似的东西:

Job myJob = new Job(...);

我知道我可以使用REST API或CLI,但是由于我在插件中,因此我将使用Java内部解决方案。


阅读 255

收藏
2020-07-25

共1个答案

一尘不染

您只需执行以下操作即可创建新的hudson / jenkins作业:

FreeStyleProject proj = Hudson.getInstance().createProject(FreeStyleProject.class, NAMEOFJOB);

如果您希望能够处理更新(并且已经拥有config.xml):

import hudson.model.AbstractItem
import javax.xml.transform.stream.StreamSource
import jenkins.model.Jenkins

final jenkins = Jenkins.getInstance()

final itemName = 'name-of-job-to-be-created-or-updated'
final configXml = new FileInputStream('/path/to/config.xml')
final item = jenkins.getItemByFullName(itemName, AbstractItem.class)

if (item != null) {
  item.updateByXml(new StreamSource(configXml))
} else {
  jenkins.createProjectFromXML(itemName, configXml)
}

不过,在执行此操作之前,请确保您具有核心.jar文件。

2020-07-25