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 <[email protected]> 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 [email protected]: > >> 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 [email protected]. > 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAG1W_AxkS%2Bd4sTsJWShvC4SeLDLWB%2BLvVe65JpXDRDrX2JoaEQ%40mail.gmail.com.
