编写Jenkins管道作业脚本

时间:2018-10-13 15:21:57

标签: jenkins groovy jenkins-pipeline

我正在使用Docker映像: jenkins / jenkins:lts

我有很多groovy脚本,它们在构建docker映像期间被复制到$JENKINS_HOME/init.groovy.d/目录中。

我想编写一个脚本来创建新的Pipeline作业,但是我一直在寻找有关如何执行此操作的任何信息。创建作业后,所有教程似乎都是关于如何使用管道插件的。

以下脚本是我所追求的示例,但这是针对Freestyle项目而不是管道的内容:

#!groovy

import jenkins.model.Jenkins;
import hudson.model.FreeStyleProject;
import hudson.tasks.Shell;
import hudson.triggers.SCMTrigger;

def jenkins = Jenkins.getInstance();
def initJob = jenkins.createProject(FreeStyleProject, 'init-job');

initJob.setDescription('This is a dummy project');

2 个答案:

答案 0 :(得分:3)

好,所以我真的很笨...管道以前称为Workflow,它在UI中告诉您

enter image description here

所以对我来说是:

#!groovy

import jenkins.model.Jenkins;
import hudson.model.WorkflowJob;
import hudson.tasks.Shell;
import hudson.triggers.SCMTrigger;

def jenkins = Jenkins.getInstance();
def initJob = jenkins.createProject(WorkflowJob, 'init-job');

initJob.setDescription('This is a dummy project');

答案 1 :(得分:1)

Job DSL插件让您使用groovy脚本创建作业。您可以将所有配置保留在VCS中,并告诉Jenkins运行Job DSL脚本以生成所有作业。创建管道作业很简单:

pipelineJob('example') {
    definition {
        cps {
            script(readFileFromWorkspace('project-a-workflow.groovy'))
            sandbox()
        }
    }
}

此示例摘自Job DSL API Viewer