jenkinsci / extended-choice-parameter-plugin

Jenkins extended-choice-parameter plugin
https://plugins.jenkins.io/extended-choice-parameter/
MIT License
74 stars 98 forks source link

startval in JSON Parameter Config Groovy Script not being used as default value when the job is executed by Timer or by other jobs #95

Open sharoncr1 opened 1 year ago

sharoncr1 commented 1 year ago

Jenkins and plugins versions report

Environment ``` Jenkins: 2.361.2 OS: Linux - 5.15.0-1033-aws Java: 11.0.19 - Ubuntu (OpenJDK 64-Bit Server VM) --- ace-editor:1.1 ant:481.v7b_09e538fcca antisamy-markup-formatter:2.7 apache-httpcomponents-client-4-api:4.5.13-138.v4e7d9a_7b_a_e61 aws-credentials:191.vcb_f183ce58b_9 aws-java-sdk-ec2:1.12.287-357.vf82d85a_6eefd aws-java-sdk-minimal:1.12.287-357.vf82d85a_6eefd bitbucket:223.vd12f2bca5430 bitbucket-approve:1.0.3 bitbucket-build-status-notifier:1.4.2 bitbucket-pullrequest-builder:1.5.0 bitbucket-push-and-pull-request:2.8.3 bootstrap5-api:5.2.1-3 bouncycastle-api:2.26 branch-api:2.1046.v0ca_37783ecc5 build-timeout:1.24 build-user-vars-plugin:1.9 caffeine-api:2.9.3-65.v6a_47d0f4d1fe checks-api:1.7.5 cloudbees-folder:6.758.vfd75d09eea_a_1 command-launcher:90.v669d7ccb_7c31 commons-lang3-api:3.12.0-36.vd97de6465d5b_ commons-text-api:1.10.0-27.vb_fa_3896786a_7 conditional-buildstep:1.4.2 config-file-provider:3.11.1 configuration-as-code:1569.vb_72405b_80249 copyartifact:1.47 credentials:1189.vf61b_a_5e2f62e credentials-binding:523.vd859a_4b_122e6 cucumber-slack-notifier:0.8.3 custom-folder-icon:2.3 display-url-api:2.3.6 durable-task:501.ve5d4fc08b0be ec2:2.0.4 echarts-api:5.4.0-1 email-ext:2.92 extended-choice-parameter:359.v35dcfdd0c20d extensible-choice-parameter:1.8.0 external-monitor-job:203.v683c09d993b_9 font-awesome-api:6.2.0-3 generic-webhook-trigger:1.85.2 git:4.12.1 git-client:3.12.1 git-parameter:0.9.18 global-variable-string-parameter:1.2 instance-identity:116.vf8f487400980 ionicons-api:31.v4757b_6987003 jackson2-api:2.13.4.20221013-295.v8e29ea_354141 jacoco:3.3.2 jakarta-activation-api:2.0.1-2 jakarta-mail-api:2.0.1-2 javadoc:226.v71211feb_e7e9 javax-activation-api:1.2.0-5 javax-mail-api:1.6.2-8 jaxb:2.3.7-1 jdk-tool:55.v1b_32b_6ca_f9ca job-dsl:1.81 jobConfigHistory:1176.v1b_4290db_41a_5 jquery:1.12.4-1 jquery3-api:3.6.1-2 jsch:0.1.55.61.va_e9ee26616e7 junit:1153.v1c24f1a_d2553 ldap:2.12 mailer:438.v02c7f0a_12fa_4 matrix-auth:3.1.5 matrix-project:785.v06b_7f47b_c631 mercurial:1260.vdfb_723cdcc81 mina-sshd-api-common:2.9.1-44.v476733c11f82 mina-sshd-api-core:2.9.1-44.v476733c11f82 miniorange-saml-sp:1.0.14 momentjs:1.1.1 multiple-scms:0.8 node-iterator-api:49.v58a_8b_35f8363 nodejs:1.5.1 nodelabelparameter:1.11.0 pam-auth:1.10 parameterized-trigger:2.45 pipeline-build-step:2.18 pipeline-graph-analysis:195.v5812d95a_a_2f9 pipeline-groovy-lib:613.v9c41a_160233f pipeline-input-step:456.vd8a_957db_5b_e9 pipeline-milestone-step:101.vd572fef9d926 pipeline-model-api:2.2118.v31fd5b_9944b_5 pipeline-model-definition:2.2118.v31fd5b_9944b_5 pipeline-model-extensions:2.2118.v31fd5b_9944b_5 pipeline-rest-api:2.27 pipeline-stage-step:296.v5f6908f017a_5 pipeline-stage-tags-metadata:2.2118.v31fd5b_9944b_5 pipeline-stage-view:2.27 pipeline-utility-steps:2.13.0 plain-credentials:139.ved2b_9cf7587b plugin-util-api:2.18.0 popper2-api:2.11.6-2 publish-over:0.22 publish-over-ssh:1.24 resource-disposer:0.20 role-strategy:562.v44e9a_e828d0e run-condition:1.5 saml:4.369.v13507586ef8c scm-api:621.vda_a_b_055e58f7 script-security:1189.vb_a_b_7c8fd5fde slack:629.vf00ea_cb_40d53 slave-status:1.6 snakeyaml-api:1.32-86.ve3f030a_75631 sonar:2.14 ssh-agent:295.v9ca_a_1c7cc3a_a_ ssh-credentials:305.v8f4381501156 ssh-slaves:2.854.v7fd446b_337c9 ssh-steps:2.0.39.v831c5e6468b_c sshd:3.249.v2dc2ea_416e33 structs:324.va_f5d6774f3a_d token-macro:308.v4f2b_ed62b_b_16 trilead-api:2.72.v2a_3236754f73 uno-choice:2.6.5 variant:59.vf075fe829ccb windows-slaves:1.8.1 workflow-aggregator:590.v6a_d052e5a_a_b_5 workflow-api:1200.v8005c684b_a_c6 workflow-basic-steps:994.vd57e3ca_46d24 workflow-cps:2803.v1a_f77ffcc773 workflow-durable-task-step:1210.va_1e5d77e122b workflow-job:1249.v7d974144cc14 workflow-multibranch:716.vc692a_e52371b_ workflow-remote-loader:1.5 workflow-scm-step:400.v6b_89a_1317c9a_ workflow-step-api:639.v6eca_cd8c04a_a_ workflow-support:839.v35e2736cfd5c ws-cleanup:0.43 ```

What Operating System are you using (both controller, and any agents involved in the problem)?

Ubuntu 20.04

Reproduction steps

  1. Create a simple pipeline with an extended choice parameter named config.
  2. The parameter is JSON Parameter Config with following Groovy Script :
    return new groovy.json.JsonSlurper().parseText(/{
    "disable_edit_json": true,
    "disable_properties": true,
    "no_additional_properties": true,
    "disable_collapse": true,
    "disable_array_add": true,
    "disable_array_delete": false,
    "disable_array_reorder": true,
    "theme": "bootstrap2",
    "iconlib":"fontawesome4",
    "schema":{
    "type": "array",
    "disable_array_delete_all_rows" : true,
    "disable_array_delete_last_row" : true,
    "title": "Build Configurations",
    "format": "table",
    "items": {
    "type": "object",
    "properties": {
      "service" : {
        "type": "string",
        "readOnly": "true",
        "propertyOrder" : 1
      },
      "source_branch" : {
        "type": "string",
        "readOnly": "true",
        "propertyOrder" : 2
      },
      "deploy" : {
        "type": "boolean",
        "format": "checkbox",
        "propertyOrder" : 3
      },
    }
    }
    },
    "startval":[
    {
    "service": "service1",
    "source_branch": "dev"
    },
    {
    "service": "service2",
    "source_branch": "dev"
    },
    {
    "service": "service3",
    "source_branch": "master"
    }
    ]
    }/);
  3. The jenkins job has simple following pipeline groovy script to print the value of CONFIG parameter :

pipeline { agent any

stages {
    stage('test') {
        steps {
            script{
                echo "${params.CONFIG}"                   
            }
        }
    }
}

}



4. When this job is manually triggered, I'm getting the value of startval JSON as the output. But when the job is triggered by a timer or by an upstream job with the help of groovy script, I'm getting `null` as the output. 

### Expected Results

I'm expecting the plugin the return the startval as the default value for the parameter when it's triggered by a timer or by any other job.

### Actual Results

null

### Anything else?

_No response_
Allen--Wang commented 4 months ago

Same issue. Do you get any solutions?