詹金斯的种子工作是什么?它是如何运作的?

时间:2016-06-09 05:43:08

标签: jenkins jenkins-plugins jenkins-job-dsl

詹金斯的种子工作是什么?它是如何运作的?

我们可以在不使用github的情况下从种子作业中创建新作业吗?

3 个答案:

答案 0 :(得分:6)

这取决于背景。詹金斯本身并没有提供种子工作"。

这些插件允许从其他作业创建作业,例如优秀的Job-DSL plugin。有了它,您可以创建一个作业,其中groovy脚本为您创建大量的作业。

Job-DSL插件将那些工作称为"种子工作" (但他们是正规的自由式工作)。 Job-DSL插件不需要github连接。

答案 1 :(得分:0)

种子作业是运行作业 DSL 脚本的普通 Jenkins 作业;反过来,脚本包含创建额外作业的指令。简而言之,种子工作是一项创造更多工作的工作。在此步骤中,您将构建一个作业 DSL 脚本并将其合并到一个种子作业中。您将定义的作业 DSL 脚本将创建一个打印“Hello World!”的自由式作业。作业控制台输出中的消息。

Job DSL 脚本由 Job DSL 插件提供的 API 方法组成;您可以使用这些 API 方法来配置作业的不同方面,例如其类型(自由式作业与管道作业)、构建触发器、构建参数、构建后操作等。您可以在 API 参考网站上找到所有支持的方法。

我们用于创建新作业的作业称为种子作业,该种子作业使用 Jenkins 文件(使用 JobDSL 插件)生成新作业。

在这里,我们禁用此功能(启用作业 DSL 脚本的脚本安全性)

Jenkins Dashboard→ Manage Jenkins → Configure Global Security

创建种子作业的方法:

Way to create seed job

用于生成新作业的 JobDSL 脚本。

Job1.groovy

job("Job1"){
    description("First job")
    authenticationToken('secret')
    label('dynamic')
    scm {
        github('Asad/jenkins_jobDSL1', 'master')
    }
    triggers {
        gitHubPushTrigger()   
    }
    steps {
        shell ('''
    echo "test"
''')
    }
}
buildPipelineView('project-A') {
    title('Project A CI Pipeline')
    displayedBuilds(5)
    selectedJob('Job1')
    showPipelineParameters()
    refreshFrequency(60)
}

并以同样的方式创建其他 Job2.groovy 等。

对于 Jenkins Job DSL 文档:- 关注https://jenkinsci.github.io/job-dsl-plugin/

答案 2 :(得分:0)

想想一份工作 - 它实际上是什么?

它实际上只是一个 java/jre 对象,表示像 this

你如何生成这样的工作/构建?

配置 Jenkins UI -> rest api 到 Jenkins url -> Jenkins 服务在相关端点上接收您的调用 -> 调用相关代码/方法并生成此新作业

种子工作将如何实现?

仅在 Jenkins UI 上配置种子作业一次 -> 运行此种子作业 -> 此代码针对内部 Jenkins 方法运行并跳过上面描述的所有手动过程

现在,当您的代码可以直接与 Jenkins 代码对话时,事情就简单多了。只需在相关存储库中更新您的代码 - 就完成了