从管道詹金斯作业A传递“ git参数”到作业B

时间:2020-10-01 08:11:12

标签: git jenkins jenkins-pipeline

我有一个管道詹金斯作业A和一个詹金斯作业B,它们可能是也可能不是管道作业。 我必须:

  • 步骤1)。从作业A和
  • 触发作业B
  • 步骤2)。传递 git参数(分支名称和凭据) 从作业A到作业B,以便在作业B时签出项目 被触发到作业B的工作空间中。

就目前而言,我能够从工作A触发工作B,但我无法实现步骤2。 有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

有几种方法可以实现。

詹金斯文件

如果使用文件,则在管道之间传递变量。 您提到您没有使用管道,所以我假设您不使用JenkinsFile

pipeline {
    // Define the desired paramaters
    parameters {
        string(name: 'var1', defaultValue: '')
        }

        // Define global variable
        stage("define global var") {
             steps {
               env.var1 = value1
              }
        }
     
        stage("test variables") {
            steps {
              echo "${env.var1}"
            }
        }
  }

将变量写入文件

将变量写入文件,然后从磁盘读取。

添加设置变量步骤


// First set the variables

script
{
    env.var1_name = "var1_value"
    .....
    env.varX_name = "varX1_value"

    // Print the values of the variables
    echo " My vars[DEV:${env.var1_name }] 
}
  • 完整脚本看起来像
stage('define glbal variables') {
    script
    {
        env.var1_name = "var1_value"
        .....
        env.varX_name = "varX1_value"

        // Print the values of the variables
        echo " My vars[DEV:${env.var1_name }] 
    }
}

// Define Job which need teh value of the variable
stage('Job A') {
    echo "NEXT JOB DEV version = ${env.var1_name }"
}

stage('Job B') {
    echo "NEXT JOB DEV version = ${env.var1_name }"
}

定义全局变量

// Define a ---groovy--- global named [var1] which can be shared between steps
var1 = 'value1'

...

pipeline {
  stages {
    stage('A') {
      steps {
        echo "${var1}" 
        }
      }
   }
}