Lam*_*bda 13 jenkins jenkins-pipeline
Jenkins管道项目配置为Jenkinsfile从Git仓库获取它:
如果我更改参数列表,例如,从:
properties([
parameters([
string(name: 'FOO', description: 'Choose foo')
])
])
Run Code Online (Sandbox Code Playgroud)
至:
properties([
parameters([
string(name: 'FOO', description: 'Choose foo'),
string(name: 'BAR', description: 'Choose bar')
])
])
Run Code Online (Sandbox Code Playgroud)
并运行构建,第一次运行不显示新添加的BAR参数:
由于更新的Jenkins文件需要存在BAR参数,这会导致更改后的第一个构建失败,因为没有向用户显示输入此值的输入.
有办法防止这种情况吗?Jenkinsfile在显示参数输入页面之前确保它是最新的?
简短的答案:不。如果有一些与构建分开的解析和处理Jenkinsfile的工具,那会很好,但是没有。
Jenkins在获取,解析和运行Jenkinsfile之前不知道新参数,唯一的方法是...运行构建。
实际上,构建历史将始终“落后于” Jenkinsfile。当您更改Jenkinsfile中的内容时,下一个构建将使用“旧的” Jenkinsfile运行,但是之后为该构建选择并处理新的Jenkinsfile。
小智 2
我有一个函数会跳过构建,除非作业具有所有必需的参数,例如:
if (job.hasParameters(['FOO', 'BAR'])) {
// pipeline code
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4344 次 |
| 最近记录: |