如何从Jenkins函数返回值到构建阶段?

时间:2019-08-03 17:27:15

标签: jenkins continuous-integration jenkins-pipeline jenkins-groovy

我想将groovy函数的值返回到我的jenkins构建阶段,以便将该值用作其他阶段的条件。我不知道如何实现这一点。我已经尝试过类似下面的操作,但是没有用。

我有Jenkinsfile这样的东西:

pipeline
{
  agent any
  stages
  {
       stage('Sum')
       {
         steps
         {
          output=sum()
          echo output
         }
       }
       stage('Check')
       {
         when
         {
          expression
          {
           output==5
          }
         }
         steps
         {
          echo output
         }
       }
  }
}

def sum()
{
   def a=2
   def b=3
   def c=a+b
   return c
}

以上方法无效。有人可以提供正确的实施方式吗?

1 个答案:

答案 0 :(得分:0)

您缺少script-step。如果要在Jenkinsfile中执行简单的常规操作,则很有必要。此外,如果您以后要访问output,则必须将其设置为全局变量。

def output // set as global variable
pipeline{
...

stage('Sum')
{
    steps
    {
        script
        {
            output = sum()
            echo "The sum is ${output}"
        }
    }
}
...