如何强制jenkins重新加载jenkins文件?

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)

确实一定有更好的方法,但我还没找到它:(


fty*_*ty4 6

不幸的是,TomDotTom 的答案对我不起作用 - 我遇到了同样的问题,由于以下错误,我的詹金斯需要“运行 Jenkinsfile”下的另一个阶段:

\n\n
\n

未知的舞台部分“舞台”。从版本 0.5 开始,阶段中的步骤必须位于 \xe2\x80\x98steps\xe2\x80\x99 块中。

\n
\n\n

另外,我使用params而不是参数作为变量来检查条件(如Jenkins Syntax中所述)。

\n\n
pipeline {\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}\n
Run Code Online (Sandbox Code Playgroud)\n\n

应用于 Jenkins 2.233

\n