Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-44741

Build User Vars should not require node

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      When using the build user vars plugin in a pipeline the current required usage is:

      node {
          wrap([$class: 'BuildUser']) {
              // Do something with env.BUILD_USER* vars
          }
      }
      

      The 'node' is required here, because of how 'wrap' works. Because of this it is currently not possible to get the build user information outside the context of a node.

      Creating a custom Workflow step would solve this. Example:

      def buildUser = buildUserVars()
      // Do something with any of its properties:
      // - name
      // - firstName
      // - lastName
      // - userId
      // - email
      

      Or to keep it closer to how it currently works:

      buildUserVars {
        // Do something with env.BUILD_USER* vars
      }
      

      See https://issues.jenkins-ci.org/browse/JENKINS-30142 for a similar issue, which has been solved, for a different plugin.

        Attachments

          Issue Links

            Activity

            Hide
            ssbarnea Sorin Sbarnea added a comment -

            Any updates on this? It would really be useful to use this without putting it inside node block.

            Show
            ssbarnea Sorin Sbarnea added a comment - Any updates on this? It would really be useful to use this without putting it inside node block.
            Hide
            kerrhome Shannon Kerr added a comment -

            Agree.  Wish I didn't have to wrap this with node.

             

            Show
            kerrhome Shannon Kerr added a comment - Agree.  Wish I didn't have to wrap this with node.  
            Hide
            dayer4b Sunil Chopra added a comment -

            Agree.  This not being a feature is very puzzling and makes the plugin hard to use.  The fact that the plugin is necessary at all is weird.  The fact that the plugin then goes further in requiring a node makes the situation super frustrating.

            For what it's worth, I was able to put together a one-ish line of Groovy that effectively "liberates" the needed information.  But this is highly confusing and increases technical debt in our pipelines. 

            node {
              wrap([$class: 'BuildUser']) { env.BUILD_USER_ID = env.BUILD_USER_ID  } 
            }
            
            echo env.BUILD_USER_ID
            Show
            dayer4b Sunil Chopra added a comment - Agree.  This not being a feature is very puzzling and makes the plugin hard to use.  The fact that the plugin is necessary at all is weird.  The fact that the plugin then goes further in requiring a node makes the situation super frustrating. For what it's worth, I was able to put together a one-ish line of Groovy that effectively "liberates" the needed information.  But this is highly confusing and increases technical debt in our pipelines.  node { wrap([$class: 'BuildUser' ]) { env.BUILD_USER_ID = env.BUILD_USER_ID } } echo env.BUILD_USER_ID
            Hide
            ipintor Isela Pintor added a comment -

            Agree.  This would work much better if no node wrapper was needed.

            Show
            ipintor Isela Pintor added a comment - Agree.  This would work much better if no node wrapper was needed.

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              markl_lagendijk Mark Lagendijk
              Votes:
              2 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated: