【问题标题】:How to use Jenkins String Parameter in pipeline如何在管道中使用 Jenkins 字符串参数
【发布时间】:2016-10-19 12:07:12
【问题描述】:

我们正在使用 Jenkins Pipeline 在 jenkins 中配置作业。对于一堆工作,我们需要用户输入,我们使用参数化构建,用户可以在其中输入参数值,然后我们在 sh 中使用 .jenkinsfile 中的值,如

 sh "./build-apply.sh ${accountnumber} ${volumename} ${vpcname} services ${snapshotid}"

这曾经与

  • 詹金斯 2.16
  • 管道 2.3
  • Groovy 2.15

但是,当我将 Jenkins 重建为:

  • 2.16 或最新的 2.26
  • 管道 2.5
  • 管道:Groovy 2.19

上述sh 停止工作。出错了

groovy.lang.MissingPropertyException: No such property: accountnumber for class: groovy.lang.Binding

知道我错过了什么吗?语法不正确吗?

参考全文Jenkinsfile参考

node {
  // Mark the code checkout 'stage'....


  stage 'Checkout'
  git branch: '****', credentialsId: '***', url: '****'

  stage 'Provision Volume'
  withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', accessKeyVariable: '*****',
                    credentialsId: '****',
                    secretKeyVariable: '*****']]) {
    // Run the terraform build
    env.PATH = "${env.PATH}:/jenkins/terraform"
    sh "./build-apply.sh ${accountnumber} ${volumename} ${vpcname} services ${snapshotid}"
  }
}

【问题讨论】:

  • 您希望accountnumbervolumenamevpcnamesnapshotid 来自哪里?您是否使用正确的参数运行作业?
  • 这些被设置为作业的参数,该作业具有这些名称的参数。所以这来自用户输入并被设置。
  • 你能分享这个 Jenkinsfile 中的参数定义吗?

标签: jenkins groovy jenkins-plugins jenkins-pipeline


【解决方案1】:

将以下代码复制并粘贴到管道脚本中 节点:{

stage ('BCCdlVsLib') {
build job: 'BCCdlVsLib', parameters:
[
    [$class: 'StringParameterValue', name: 'BINPATH', value: 'BINPATH'], 
    [$class: 'StringParameterValue', name: 'SOURCEFILE', value: 'SOURCEFILE']
        ]
}

在作业(BCCdlVsLib)中启用“此项目已参数化”选项并输入 2 个字符串参数 job_binpath,job_sourcefile。

打印管道作业中的变量 回显作业_binpath 回显作业源文件

运行管道作业后,将得到以下输出。 二进制路径 源文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    相关资源
    最近更新 更多