【问题标题】:How to setup parameters into jenkins pipeline script如何将参数设置到詹金斯管道脚本中
【发布时间】:2018-12-28 22:17:10
【问题描述】:

我们有一个 jenkins 作业,可以使用参数运行自动测试:

  • 主机;
  • 实验;
  • TAKE_NEW_SCREENSHOT;
  • XML_NAME。

所有这些参数都有默认值, 在运行参数化作业之前查看屏幕截图:

我只需要使用 2 个参数同时运行多个作业:HOST 和 EXPERIMENT。 我创建了下一个管道脚本:

def tasks = [:]

parameters {
    string(name: 'HOST', defaultValue: 'www', description: 'host: www, dev3, etc',)
    string(name: 'EXPERIMENT', defaultValue: 'withoutExperiment',)
}

tasks['Actions MyBox'] = {
    build job: 'MyDocs_Actions_And_Manage_Buttons_MyBox_Tests', parameters: [
        string(name: 'HOST', value: 'www'), 
        string(name: 'EXPERIMENT', value: 'withoutExperiment'), 
        booleanParam(name: 'TAKE_NEW_SCREENSHOT', value: false), 
        string(name: 'XML_NAME', value: 'my_docs_actions_buttons_mybox_tests')
    ]
}

tasks['DashBoard General'] = {
    build job: 'DashBoard_General_Tests', parameters: [
        string(name: 'HOST', value: 'www'), 
        string(name: 'EXPERIMENT', value: 'withoutExperiment'), 
        booleanParam(name: 'TAKE_NEW_SCREENSHOT', value: false), 
        string(name: 'XML_NAME', value: 'my_docs_dash_board_general_tests')
    ]
}

tasks['Actions InBox'] = {
    build job: 'MyDocs_Actions_Buttons_InBox_Tests', parameters: [
        string(name: 'HOST', value: 'www'), 
        string(name: 'EXPERIMENT', value: 'withoutExperiment'), 
        booleanParam(name: 'TAKE_NEW_SCREENSHOT', value: false), 
        string(name: 'XML_NAME', value: 'my_docs_actions_buttons_inbox_tests')
    ]
}

parallel tasks

以及“常规”管道配置中的指定参数:

但是当我使用参数值 != 默认值运行这个管道项时,例如指定 HOST = dev12,

无论如何,所有使用默认参数值同时运行的作业和构建显示指定参数为空,

帮我定义一个问题。

【问题讨论】:

    标签: jenkins jenkins-pipeline


    【解决方案1】:

    您将硬编码的值传递给您的任务。例如,您定义了

    tasks['Actions MyBox'] = {
        build job: 'MyDocs_Actions_And_Manage_Buttons_MyBox_Tests', parameters: [
            string(name: 'HOST', value: 'www'), 
            string(name: 'EXPERIMENT', value: 'withoutExperiment'), 
            booleanParam(name: 'TAKE_NEW_SCREENSHOT', value: false), 
            string(name: 'XML_NAME', value: 'my_docs_actions_buttons_mybox_tests')
        ]
    }
    

    在这种情况下,所有参数都是硬编码的,每次执行管道时,HOST 的值将是www。这就是为什么你在构建执行信息的HOST 参数描述中有null 的原因(因为你没有在build job 命令中指定它)。

    所以,你需要使用类似string(name:'HOST', value: "${params.HOST}")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多