Nic*_*asW 5 parameter-passing jenkins jenkins-plugins jenkins-pipeline
我有多个具有类似构建步骤的项目,并且我正在考虑在这些项目中重用 Jenkinsfile 管道。我很难找到有关如何实现此类标准(据我看来)设置的文档。
这是我的要求:
1)Jenkinsfile存储在repo中,在多个项目之间共享
2)每个项目都有自己的参数:项目在存储库中的位置。
3)至少从用户的角度来看,Jenkins 中的每个项目应该是独立的,这意味着例如执行和日志在 Jenkins 中每个项目的条目中都可用
我怎样才能实现这个目标?基于管道参数和jenkins GUI参数如何协同工作?我知道我可以使用自由式作业,但是使用此选项无法直接使用日志。有人建议我在每个独立作业中使用 Jenkinsfile,但在我看来,这听起来像是太多不必要的配置。
我最初考虑复制我的管道作业(意味着复制作业,包括参数定义、存储库以及凭证和 jenkinfile 位置定义),我遇到的问题是每次运行作业时,管道都会擦除参数默认值
projectSvnPath例如,在 Jenkinsfile 中定义没有默认值的属性将删除projectSvnPathJenkins 中的作业参数值。因此我无法使用此选项。
properties([
parameters([
string(name: 'projectSvnPath', description: '*', )
])
])
Run Code Online (Sandbox Code Playgroud)
Jenkins 具有共享库概念,允许多个构建共享通用管道指令,而无需复制代码。详细信息请参见https://jenkins.io/doc/book/pipeline/shared-libraries/。
更新 07/13/17 我的所有参数都在管道中定义,以避免出现参数问题。我更喜欢在代码存储库中定义参数,但我可以预见到这不切实际的情况。
04/18 更新我放弃使用共享库 - 原因是它无法测试。它不会在开发环境(比如您的 PC)上运行,因此任何开发基本上都需要推送到您的存储库才能执行任何测试。对于任何类型的软件开发来说,这都不是可持续的方法。目前我的 jenkins 文件是重复的,因为我没有找到使用 jenkins 的解决方法。
| 归档时间: |
|
| 查看次数: |
7951 次 |
| 最近记录: |