如何在插件中创建新的Jenkins作业?
我有一个Jenkins插件,可监听消息队列,并在消息到达时触发新事件以创建新作业(或开始运行)。
我正在寻找类似的东西:
Job myJob = new Job(...);
我知道我可以使用REST API或CLI,但是由于我在插件中,因此我将使用Java内部解决方案。
您只需执行以下操作即可创建新的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文件。
问题内容: 我能够通过Jenkins Web GUI创建一个新节点,然后让容器中运行的节点通过名称和-secret值连接回Jenkins主节点 例如 有没有一种方法可以通过编程方式创建Jenkins节点并获取密码和从属名称,因此我不必通过GUI来执行此操作? 问题答案: 以编程方式创建代理 您可以使用 CLI命令创建具有给定配置的新代理。 例如,考虑到文件中的此最小JNLP代理配置: 您可以通过C
问题内容: 我知道我可以使用Java中的 api 以编程方式创建文件,如下所示: 但是是否有任何 API 可以构建树?(例如Dom之类的api) 我需要这样的东西: 和: 提前致谢。 问题答案: 由于XSLT也是XML,因此您可以简单地使用相同的策略: 等等… 但这不是很优雅。您应该改用库或框架,但应该很容易找到一个谷歌浏览器。
问题内容: 我正在尝试为Groovy控制台中的Groovy脚本获取(并希望更改)插件的Jenkins配置。我的特定示例是尝试更改ssh发行插件的多个IP地址。通过命令行(编辑xml)很容易做到,但是经过数小时的努力,我仍然想通过groovy控制台找到它的实现方式,除了启迪,别无其他原因。我已经浏览了Jenkins API javadoc,但无济于事。 如何在Jenkins控制台中查找/更改插件的全
问题内容: 我正在尝试以编程方式在Java中创建新的密钥库。如下代码: 引发未初始化的KeyStore异常。 问题答案: 创建密钥库后,需要将其加载。load方法要求读取FileInputStream,但是如果您提供一个null,则将加载一个空的KeyStore。 看到这个链接
问题内容: 我一直在尝试以编程方式重做我的应用程序上的工作。(不使用情节提要) 除了手动制作导航控制器外,我几乎完成了。 我一直在做一些研究,但找不到任何手动实现此方法的文档。(我开始将应用程序制作为单视图应用程序) 目前,我只有1个ViewController。当然是appDelegate 导航控制器将在应用程序的所有页面中使用。 如果有人可以帮助我,或发送指向一些适当文档的链接以编程方式进行此
问题内容: 我希望能够以编程方式添加新的cron作业,最佳方法是什么? 从我的研究来看,我似乎可以转储当前的crontab,然后附加一个新的crontab,然后将其重新管道到crontab中: 有没有更好的办法? 问题答案: 对我来说一直很好。 您应该考虑一个稍微复杂的脚本,它可以完成三件事。 附加crontab行;确保它不存在。当它已经存在时添加是不好的。 删除crontab行。也许只有警告,如