I don't understand why your example do not work, but I was recently confronted to this bug : https://issues.jenkins.io/browse/JENKINS-42360 This changed my way of thinking : stop use groovy var, use environment, everywhere, always.
Maybe you could try to set your variable as env var : env['VALUE_NAME'] = 'value' and use it with env.VALUE_NAME. I think that using env var is a more "standard" way of doing, especially in declarative pipelines. I even use a "setEnv" function in /vars to ease the process without the need of script closure. Hope this helps On Sun, Nov 29, 2020 at 3:39 PM Kiyoshi Ohgishi <k.ohgi...@gmail.com> wrote: > Thank you for your advice. > I tried the following script. > > import groovy.transform.Field > @Field def value1 = 'initial value' > > But the prompted value is "initial value" , which is the same value as > before. > > 2020年11月26日木曜日 23:05:50 UTC+9 victormar...@gmail.com: > >> You can try with environment variables or the Field annotation as shown >> below >> >> import groovy.transform.Field >> @Field def value1 = 'initial value' >> >> >> On Wednesday, 25 November 2020 at 19:00:24 UTC Kiyoshi Ohgishi wrote: >> >>> I want to change from scripted pipeline script to declarative pipeline >>> script. >>> But I have one problem defaultValue of input cannot change value in case >>> of declarative pipeline script. >>> >>> Below is the scripted pipeline script I want to change from. >>> ---- >>> def value1 = 'initial value' >>> node { >>> label 'master' >>> stage('prediction') { >>> value1 = sh(script: 'echo predicted value', returnStdout: >>> true).trim() >>> } >>> } >>> def setting >>> stage('setting') { >>> setting = input(parameters: [string(name: 'value2', defaultValue: >>> value1)]) >>> } >>> stage('execution') { >>> build(job: 'job', parameters: [string(name: 'value2', value: >>> setting)]) >>> } >>> ---- >>> The prompted value in input step is "predicted value" as I exected. >>> >>> Below is the failing declarative pipeline script I tried. >>> ---- >>> def value1 = 'initial value' >>> pipeline { >>> agent none >>> stages { >>> stage('prediction') { >>> agent { >>> label 'master' >>> } >>> steps { >>> script { >>> value1 = sh(script: 'echo predicted value', >>> returnStdout: true).trim() >>> } >>> } >>> } >>> stage('execution') { >>> input { >>> message 'setting' >>> parameters { >>> string(name: 'value2', defaultValue: value1) >>> } >>> } >>> steps { >>> build(job: 'job', parameters: [string(name: 'value2', >>> value: value2)]) >>> } >>> } >>> } >>> } >>> ---- >>> The prompted value is "initial value" as I don't expect. >>> >>> What I want to make with a script is the following three steps. >>> 1. get "predicted value" using shell script in the git repository. >>> 2. prompt "predicted value" and decide value. >>> 3. run the job with decided value. >>> >>> How to change defaultValue of input in case of declarative pipeline >>> script? >>> >>> Kiyoshi Ohgishi >>> >> -- > You received this message because you are subscribed to the Google Groups > "Jenkins Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to jenkinsci-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-users/58c0b7e4-4083-40b2-940a-ff32b8b11c53n%40googlegroups.com > <https://groups.google.com/d/msgid/jenkinsci-users/58c0b7e4-4083-40b2-940a-ff32b8b11c53n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- Yannick LACAUTE Consultant indépendant 39 rue de Wattignies, 75012 Paris Tel : 06 16 85 95 76 -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAG1W_AxkS%2Bd4sTsJWShvC4SeLDLWB%2BLvVe65JpXDRDrX2JoaEQ%40mail.gmail.com.