dmytro Minz
dmytro Minz

Reputation: 417

How to setup parameters into jenkins pipeline script

We have a jenkins jobs that run autotests with parameters:

All of this parameters have default values, see screenshot before running parametrizing job:

Parametrizing jenkins job before running

I need to run several jobs simultaneously with only 2 parameters: HOST and EXPERIMENT. I created next pipeline-script:

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

and specified parameters in "General" pipeline configuration:

pipeline configuration

But when I run this pipeline item with parameter value != default value, for example specify HOST = dev12,

pipepline item with not default value parameter

anyway all jobs running simultaneously with default parameter values and build shows null specified parameter,

null parameter HOST

Help me please define a problem.

Upvotes: 1

Views: 1872

Answers (1)

biruk1230
biruk1230

Reputation: 3156

You're passing hardcoded values to your tasks. For example, you defined

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')
    ]
}

In this case all parameters are hardcoded and each time when pipeline is executed the value of HOST will be www. And that's why you have null in the HOST parameter description in build execution info (because you're not specifying it in build job command).

So, you need to use something like string(name:'HOST', value: "${params.HOST}")

Upvotes: 1

Related Questions