mar*_*qma 6 groovy jenkins jenkins-job-dsl jenkins-workflow jenkins-pipeline
为了自动化,我想用管道作业初始化Jenkins 2.0实例.我想创建一个Groovy脚本,/usr/share/jenkins/ref/init.groovy.d/
在启动时复制到该文件夹.该脚本应创建一个Jenkins 2.0 Pipeline作业,以便从SCM处理Jenkins文件.
我找不到2.0管道类的相关Javadoc或如何执行此操作的示例.
以前,使用工作DSL创建一个管道,我用了一个Groovy脚本来创建一个FreeStyleProject
与ExecuteDslScripts
建设者.这项工作将成为Job DSL种子工作.
一种选择是使用init脚本创建Job DSL种子作业以创建Jenkins 2.0管道.它似乎不必要地复杂.
我正在试验这个回购:https://github.com/martinmosegaard/vigilant-sniffle
das*_*ker 10
使用Job DSL 1.47(即将发布),您可以直接从init脚本使用Job DSL API,而无需创建种子作业.
import javaposse.jobdsl.dsl.DslScriptLoader
import javaposse.jobdsl.plugin.JenkinsJobManagement
def jobDslScript = new File('jobs.groovy')
def workspace = new File('.')
def jobManagement = new JenkinsJobManagement(System.out, [:], workspace)
new DslScriptLoader(jobManagement).runScript(jobDslScript.text)
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅PR#837.
如果您只需要创建一个简单的管道作业,则可以使用 Jenkins API。但这实际上只在创建一个简单的作业时才有效,对于复杂的设置,您需要一些抽象,例如作业 DSL。
从这里开始: http: //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')
Run Code Online (Sandbox Code Playgroud)
然后您需要填充作业,例如设置流程定义。
或者您可以等待系统配置 DSL 插件准备就绪。但它还没有发布,我不确定它是否可以创造就业机会。
归档时间: |
|
查看次数: |
6145 次 |
最近记录: |