一尘不染

使用init.groovy.d脚本中的管道初始化Jenkins 2.0

jenkins

对于自动化,我想使用管道作业初始化Jenkins
2.0实例。我想创建一个Groovy脚本,/usr/share/jenkins/ref/init.groovy.d/在启动时将其复制到该文件夹中。该脚本应创建一个Jenkins
2.0 Pipeline作业,以处理来自SCM的Jenkinsfile。

我找不到与2.0管道类相关的Javadoc或如何执行此操作的示例。

以前,使用Job
DSL创建管道,我使用Groovy脚本FreeStyleProject通过ExecuteDslScripts构建器创建。该工作将成为Job
DSL种子工作。

一种选择是使用初始化脚本来创建Job DSL种子作业,以创建Jenkins 2.0管道。这似乎不必要地复杂。

我正在这个仓库中进行实验:https :
//github.com/martinmosegaard/vigilant-
sniffle


阅读 332

收藏
2020-07-25

共1个答案

一尘不染

如果只需要创建一个简单的管道作业,则可以使用Jenkins API。但这实际上仅在创建一个简单作业时才有效,对于复杂的设置,您需要一些抽象,例如Job
DSL。

从这里开始:[http](http://javadoc.jenkins-
ci.org/jenkins/model/Jenkins.html#createProject(java.lang.Class,%20java.lang.String))
//javadoc.jenkins-
ci.org/jenkins/model/Jenkins.html#createProject(java.lang.Class,%20java.lang.String)。

例:

import jenkins.model.Jenkins
import org.jenkinsci.plugins.workflow.job.WorkflowJob

WorkflowJob job = Jenkins.instance.createProject(WorkflowJob, 'my-pipeline')

然后,您需要填充作业,例如,设置流程定义。

或者,您可以等待系统配置DSL插件准备就绪。但是它还没有发布,我不确定它是否可以创造就业机会。

2020-07-25