Thanks! This is working for me. However contrary to your comment about
parameters and environment, I am able to set a variable in environment
block referencing the value of a parameter. It's only when I included the
${currentBuild} reference that it wouldn't set the variable.
On Wednesday, May 10, 2017 at 10:31:23 PM UTC-5, Kevin Burnett wrote:
>
> This is a way to accomplish what you're trying to do:
>
> #!groovy
>
> // assign to this variable in the first stage (see below), and then you
> can use it throughout your pipeline
> // not quite as clean as using the environment block, but it works. the
> problem seems to be that
> // the environment block is "compiled" at the same time as the parameters
> block, etc, so the things
> // that you want to use to set up an environment variable (params, other
> env vars) are not yet available.
> def buildRevision = "UNKNOWN"
>
> pipeline {
> agent {
> label "linux"
> }
> parameters {
> string(name: "releaseName", defaultValue: "RM_TEST", description:
> "Ivy
> release spec")
> }
> tools {
> jdk 'jdk1.8.0_102'
> maven 'maven-3.2.5'
> }
> stages {
> stage("dummy") {
> steps {
> script {
> buildRevision =
> "${params.releaseName}.${env.BRANCH_NAME}.${currentBuild.startTimeInMillis}.${env.BUILD_ID}"
> }
> echo "buildRevision: ${buildRevision}"
> }
> }
> }
> }
>
>
> On Wednesday, May 10, 2017 at 1:42:11 PM UTC-4, JG wrote:
>>
>> Unfortunately not.
>>
>> [branch_jenkins-dummy_master-ZKZSOZRU2C4BR7MTP6RRGC4D2OPUWJONM6DQP6YFBP3UB5R3DCYQ]
>>
>> Running shell script
>> + env
>> + sort
>> BRANCH_NAME=master
>> BUILD_DISPLAY_NAME=#13
>> BUILD_ID=13
>> BUILD_NUMBER=13
>> BUILD_REVISION=null
>> BUILD_TAG=jenkins-testing-multibranch-jenkins-dummy-master-13
>> ...
>>
>> It's specifically the inclusion of ${currentBuild.*property*} in the
>> variable declaration within the *environment{}* block that leaves the
>> variable null.
>>
>> On Wednesday, May 10, 2017 at 12:07:31 PM UTC-5, Cuong Tran wrote:
>>>
>>> Does it work with this?
>>>
>>> withEnv(["BUILD_REVISION=${env.BUILD_REVISION}"]) {
>>> sh "env | sort"
>>> }
>>>
>>> On Wednesday, May 10, 2017 at 8:20:45 AM UTC-7, JG wrote:
>>>>
>>>> I'm trying to set an env variable globally in my *pipeline {} *with a
>>>> concatenation of build details like this
>>>>
>>>> #!groovy
>>>> pipeline {
>>>> agent {
>>>> label "linux"
>>>> }
>>>> parameters {
>>>> string(name: "releaseName", defaultValue: "RM_TEST",
>>>> description: "Ivy release spec")
>>>> }
>>>> tools {
>>>> jdk 'jdk1.8.0_102'
>>>> maven 'maven-3.2.5'
>>>> }
>>>> environment {
>>>> BUILD_REVISION =
>>>> "${params.releaseName}.${env.BRANCH_NAME}.${currentBuild.startTimeInMillis}.${env.BUILD_ID}"
>>>> RELEASE_NAME = "${params.releaseName}"
>>>> }
>>>> stages {
>>>> stage("dummy") {
>>>> steps {
>>>> sh "echo
>>>> \"${params.releaseName}.${env.BRANCH_NAME}.${currentBuild.startTimeInMillis}.${env.BUILD_ID}\""
>>>> sh "env | sort"
>>>> }
>>>> }
>>>> }
>>>> }
>>>>
>>>> and it seems to be silently failing. The *echo* command prints the
>>>> value as expected, but the *env *does not include a *BUILD_REVISION*
>>>> variable (the *RELEASE_NAME* env variable is shown in the output of
>>>> *env*. I also tried setting the *BUILD_REVISION* in an *environment{}*
>>>> block
>>>> within the stage, and also tried using a string property of
>>>> *currentBuild*. Nothing seems to work.
>>>>
>>>> It seems to work using *withEnv*
>>>>
>>>> steps {
>>>> sh "echo
>>>> \"${params.releaseName}.${env.BRANCH_NAME}.${currentBuild.startTimeInMillis}.${env.BUILD_ID}\""
>>>>
>>>> withEnv(["BUILD_REVISION=${params.releaseName}.${env.BRANCH_NAME}.${currentBuild.startTimeInMillis}.${env.BUILD_ID}"])
>>>>
>>>> {
>>>> sh "env | sort"
>>>> }
>>>> }
>>>>
>>>> But I'll need to use the variable in multiple stages so I'd prefer it
>>>> to be in a global *environment{}* block.
>>>>
>>>
--
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/91c6da9f-3be9-4a02-8889-f54299439dc4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.