在Jenkinsfile函数中使用env变量?

omjgkv6w  于 2022-12-22  发布在  Jenkins
关注(0)|答案(1)|浏览(185)

我在用Jenkins的一个任务触发另一个任务,都是通过Jenkins档案。

stage("Trigger another job")
{
    build([job:"Job2", wait:true, propagate:true, parameters: [string(name:'branch_my',value:"${env.ghprbActualCommit}")]])
}

注意,参数branch_my被发送到Job2,但是即使branch_my没有被定义,例如当它被手动触发时,管道Job2也需要工作。
Job2的Jenkinsfile看起来像:

pipeline
{
  // ...
  steps
  {
    customBranches()
    // etc...
  }
}

def customBranches()
{
    if ( env.branch_my != null)
    {
        sh "shitch_to ${env.branch_my}"
    }
}

但是,customBranches() if语句的计算结果永远不会是true
sh "echo 'Env branch_my is: ${env.branch_my} '"
我得到了Env branch_my is: some_value,这是可以的,if语句应该计算为true-但它没有。
我试着像这样添加${}if ( ${env.branch_my} != null),但完全失败:No such DSL method "$" found .
我的customBranches()有什么问题?

qnakjoqk

qnakjoqk1#

问题不在于Jenkinsfile语法,而在于Jenkins作业配置:必须在GUI中将其标记为“parametrized”,并且需要定义字符串参数branch_my

相关问题