詹金斯的种子工作是什么?它是如何运作的?
我们可以在不使用github的情况下从种子作业中创建新作业吗?
答案 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
创建种子作业的方法:
用于生成新作业的 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 代码对话时,事情就简单多了。只需在相关存储库中更新您的代码 - 就完成了