pipeline { agent {label 'windows'} parameters { choice(choices: ['22.03', '20.03', '22.09'], name: 'release') } environment { release_version = '0' } stages { stage('prepare') { steps { script { nstdout = bat(returnStdout: true, script: '@python get_sp_version.py %release%').trim() release_version = nstdout println("stdout ####" + release_version + "###########") } bat "echo %release_version%.%BUILD_NUMBER%" echo "${release_version}.${BUILD_NUMBER}" } } } }
The code above will output like:
stdout ####2203.1########### 0.47 2203.1.47
2203.1 is the value of the nstdout and release_version.
My expected output is
stdout ####2203.1########### 2203.1.47 2203.1.47
Am i missing something?
IMO the env var can be accessed by the bat script directly, right?
[JENKINS-70381] Can't access environment in windows bat script in pipline
Description |
Original:
``
pipeline { agent \{label 'windows'} parameters { choice(choices: ['22.03', '20.03', '22.09'], name: 'release') } environment { release_version = '0' } stages { stage('prepare') { steps { script { nstdout = bat(returnStdout: true, script: '@python get_sp_version.py %release%').trim() println("stdout ####" + nstdout + "###########") } bat "echo %nstdout%.%BUILD_NUMBER%" echo "${nstdout}.${BUILD_NUMBER}" } } } }``` The code above will output like: ``` stdout ####2203.1########### .47 2203.1.47 ``` 2203.1 is the value of the `nstdout` Am i missing something? IMO the env var can be accessed by the bat script directly, right? |
New:
{code:java}
pipeline { agent \{label 'windows'} parameters { choice(choices: ['22.03', '20.03', '22.09'], name: 'release') } environment { release_version = '0' } stages { stage('prepare') { steps { script { nstdout = bat(returnStdout: true, script: '@python get_sp_version.py %release%').trim() println("stdout ####" + nstdout + "###########") } bat "echo %nstdout%.%BUILD_NUMBER%" echo "${nstdout}.${BUILD_NUMBER}" } } } } {code} The code above will output like: {code:java} stdout ####2203.1########### .47 2203.1.47 {code} 2203.1 is the value of the nstdout Am i missing something? IMO the env var can be accessed by the bat script directly, right? |
Description |
Original:
{code:java}
pipeline { agent \{label 'windows'} parameters { choice(choices: ['22.03', '20.03', '22.09'], name: 'release') } environment { release_version = '0' } stages { stage('prepare') { steps { script { nstdout = bat(returnStdout: true, script: '@python get_sp_version.py %release%').trim() println("stdout ####" + nstdout + "###########") } bat "echo %nstdout%.%BUILD_NUMBER%" echo "${nstdout}.${BUILD_NUMBER}" } } } } {code} The code above will output like: {code:java} stdout ####2203.1########### .47 2203.1.47 {code} 2203.1 is the value of the nstdout Am i missing something? IMO the env var can be accessed by the bat script directly, right? |
New:
{code:java}
pipeline { agent {label 'windows'} parameters { choice(choices: ['22.03', '20.03', '22.09'], name: 'release') } environment { release_version = '0' } stages { stage('prepare') { steps { script { nstdout = bat(returnStdout: true, script: '@python get_sp_version.py %release%').trim() println("stdout ####" + nstdout + "###########") } bat "echo %nstdout%.%BUILD_NUMBER%" echo "${nstdout}.${BUILD_NUMBER}" } } } } {code} The code above will output like: {code:java} stdout ####2203.1########### .47 2203.1.47 {code} 2203.1 is the value of the nstdout Am i missing something? IMO the env var can be accessed by the bat script directly, right? |
Description |
Original:
{code:java}
pipeline { agent {label 'windows'} parameters { choice(choices: ['22.03', '20.03', '22.09'], name: 'release') } environment { release_version = '0' } stages { stage('prepare') { steps { script { nstdout = bat(returnStdout: true, script: '@python get_sp_version.py %release%').trim() println("stdout ####" + nstdout + "###########") } bat "echo %nstdout%.%BUILD_NUMBER%" echo "${nstdout}.${BUILD_NUMBER}" } } } } {code} The code above will output like: {code:java} stdout ####2203.1########### .47 2203.1.47 {code} 2203.1 is the value of the nstdout Am i missing something? IMO the env var can be accessed by the bat script directly, right? |
New:
{code:java}
pipeline { agent {label 'windows'} parameters { choice(choices: ['22.03', '20.03', '22.09'], name: 'release') } environment { release_version = '0' } stages { stage('prepare') { steps { script { nstdout = bat(returnStdout: true, script: '@python get_sp_version.py %release%').trim() release_version = nstdout println("stdout ####" + release_version + "###########") } bat "echo %release_version%.%BUILD_NUMBER%" echo "${release_version}.${BUILD_NUMBER}" } } } } {code} The code above will output like: {code:java} stdout ####2203.1########### .47 2203.1.47 {code} 2203.1 is the value of the nstdout and release_version. My expected output is {code:java} stdout ####2203.1########### 2203.1.47 2203.1.47{code} Am i missing something? IMO the env var can be accessed by the bat script directly, right? |
Description |
Original:
{code:java}
pipeline { agent {label 'windows'} parameters { choice(choices: ['22.03', '20.03', '22.09'], name: 'release') } environment { release_version = '0' } stages { stage('prepare') { steps { script { nstdout = bat(returnStdout: true, script: '@python get_sp_version.py %release%').trim() release_version = nstdout println("stdout ####" + release_version + "###########") } bat "echo %release_version%.%BUILD_NUMBER%" echo "${release_version}.${BUILD_NUMBER}" } } } } {code} The code above will output like: {code:java} stdout ####2203.1########### .47 2203.1.47 {code} 2203.1 is the value of the nstdout and release_version. My expected output is {code:java} stdout ####2203.1########### 2203.1.47 2203.1.47{code} Am i missing something? IMO the env var can be accessed by the bat script directly, right? |
New:
{code:java}
pipeline { agent {label 'windows'} parameters { choice(choices: ['22.03', '20.03', '22.09'], name: 'release') } environment { release_version = '0' } stages { stage('prepare') { steps { script { nstdout = bat(returnStdout: true, script: '@python get_sp_version.py %release%').trim() release_version = nstdout println("stdout ####" + release_version + "###########") } bat "echo %release_version%.%BUILD_NUMBER%" echo "${release_version}.${BUILD_NUMBER}" } } } } {code} The code above will output like: {code:java} stdout ####2203.1########### 0.47 2203.1.47 {code} 2203.1 is the value of the nstdout and release_version. My expected output is {code:java} stdout ####2203.1########### 2203.1.47 2203.1.47{code} Am i missing something? IMO the env var can be accessed by the bat script directly, right? |
Resolution | New: Fixed [ 1 ] | |
Status | Original: Open [ 1 ] | New: Closed [ 6 ] |