How to replace withCredentials([usernamePassword ... with credentials(...)

2,767 views
Skip to first unread message

Idan Adar

unread,
Apr 6, 2017, 11:26:00 AM4/6/17
to Jenkins Users
In declarative pipeline, one can use credentials() instead of withCredentials, but I am not really sure how this works. In general, lots of examples are missing...

Assuming I've created in Jenkins a credential for an access token, I can do this:

stage ("Merge pull request") {
    environment
{
         ACCESS_TOKEN
= credentials('credentials_id')
   
}
                 
    steps
{
       
... $ACCESS_TOKEN
   
}
}

But how do I handle username/password variables with credentials()?
Assuming I've created credentials for a username/password combination, previously it'd be like this:

withCredentials([usernamePassword(credentialsId: 'credentials_id', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {  

   
... $USERNAME
   
... $PASSWORD
}

Idan Adar

unread,
Apr 6, 2017, 11:42:36 AM4/6/17
to Jenkins Users, rsan...@cloudbees.com
Perhaps Robert (CCed) can help?

Andrew Bayer

unread,
Apr 6, 2017, 12:42:04 PM4/6/17
to jenkins...@googlegroups.com, Robert Sandell
FOO = credentials('id') will create environment variables FOO_USR and FOO_PWD

--
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+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/f25e52a4-f28a-4738-8901-c3500bd1d952%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Idan Adar

unread,
Apr 6, 2017, 2:05:27 PM4/6/17
to Jenkins Users, rsan...@cloudbees.com
The following resulted in an exception during runtime.

groovy.lang.MissingPropertyException: No such property: UP_PWD for class: groovy.lang.Binding
	at groovy.lang.Binding.getVariable(Binding.java:63)
	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:224)
	at org.kohsuke.groovy.sandbox.impl.Checker$4.call(Checker.java:241)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:238)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:221)
	at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:28)
	at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)
	at WorkflowScript.run(WorkflowScript:126)
        ...
        ...



stage ("...") {
         environment
{
            UP
= credentials('...)
         }
         
         when {
            branch "develop"
         }
         
         steps {
           
            sh "cf login ... -u $UP_USR -p $UP_PWD"
         }
      }


On Thursday, April 6, 2017 at 7:42:04 PM UTC+3, Andrew Bayer wrote:
FOO = credentials('id') will create environment variables FOO_USR and FOO_PWD
On Apr 6, 2017 8:42 AM, "Idan Adar" <id...@adar.me> wrote:
Perhaps Robert (CCed) can help?


On Thursday, April 6, 2017 at 6:26:00 PM UTC+3, Idan Adar wrote:
In declarative pipeline, one can use credentials() instead of withCredentials, but I am not really sure how this works. In general, lots of examples are missing...

Assuming I've created in Jenkins a credential for an access token, I can do this:

stage ("Merge pull request") {
    environment
{
         ACCESS_TOKEN
= credentials('credentials_id')
   
}
                 
    steps
{
       
... $ACCESS_TOKEN
   
}
}

But how do I handle username/password variables with credentials()?
Assuming I've created credentials for a username/password combination, previously it'd be like this:

withCredentials([usernamePassword(credentialsId: 'credentials_id', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {  

   
... $USERNAME
   
... $PASSWORD
}

--
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-use...@googlegroups.com.

Idan Adar

unread,
Apr 6, 2017, 2:29:38 PM4/6/17
to Jenkins Users, rsan...@cloudbees.com
There's a missing ' below, just a copy/paste mistake. The error still happens, and also with a different credential, the same one used for the checkout... so I know 100% that the values in it are valid and working... but it fails with that _PWD...

Idan Adar

unread,
Apr 6, 2017, 2:49:34 PM4/6/17
to Jenkins Users
The problem was that it's not "PWD" but "PSW"...


On Thursday, April 6, 2017 at 6:26:00 PM UTC+3, Idan Adar wrote:
Reply all
Reply to author
Forward
0 new messages