Nic*_*asW 11 jenkins jenkins-pipeline
我的jenkinsfile有几个参数,每次我在参数中进行更新(例如删除或添加一个新输入)并将更改提交给我的SCM,我没有看到jenkins中的作业输入屏幕相应更新,我必须运行一个执行,取消它,然后看到我更新的字段
properties([
parameters([
string(name: 'a', defaultValue: 'aa', description: '*', ),
string(name: 'b', description: '*', ),
string(name: 'c', description: '*', ),
])
])
Run Code Online (Sandbox Code Playgroud)
任何线索?
Tom*_*Tom 16
我为解决这个问题所做的最丑陋的事情之一是创建一个Refresh基本上立即退出管道的参数.这样我就可以运行管道来更新属性.
pipeline {
agent any
parameters {
booleanParam(name: 'Refresh',
defaultValue: false,
description: 'Read Jenkinsfile and exit.')
}
stages {
stage('Read Jenkinsfile') {
when {
expression { return parameters.Refresh == true }
}
steps {
echo("Ended pipeline early.")
}
}
stage('Run Jenkinsfile') {
when {
expression { return parameters.Refresh == false }
}
stage('Build') {
// steps
}
stage('Test') {
// steps
}
stage('Deploy') {
// steps
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
确实一定有更好的方法,但我还没找到它:(
不幸的是,TomDotTom 的答案对我不起作用 - 我遇到了同样的问题,由于以下错误,我的詹金斯需要“运行 Jenkinsfile”下的另一个阶段:
\n\n\n\n\n未知的舞台部分“舞台”。从版本 0.5 开始,阶段中的步骤必须位于 \xe2\x80\x98steps\xe2\x80\x99 块中。
\n
另外,我使用params而不是参数作为变量来检查条件(如Jenkins Syntax中所述)。
\n\npipeline {\n agent any\n parameters {\n booleanParam(name: \'Refresh\',\n defaultValue: false,\n description: \'Read Jenkinsfile and exit.\')\n }\n stages {\n stage(\'Read Jenkinsfile\') {\n when {\n expression { return params.Refresh == true }\n }\n steps {\n echo("stop")\n }\n }\n stage(\'Run Jenkinsfile\') {\n when {\n expression { return params.Refresh == false }\n }\n stages {\n stage(\'Build\') {\n steps {\n echo("build")\n }\n }\n stage(\'Test\') {\n steps {\n echo("test")\n }\n }\n stage(\'Deploy\') {\n steps {\n echo("deploy")\n }\n }\n }\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n应用于 Jenkins 2.233
\n| 归档时间: |
|
| 查看次数: |
5589 次 |
| 最近记录: |