Jenkins Credentials Binding Plugin: Difference between revisions
Jump to navigation
Jump to search
Line 12: | Line 12: | ||
=Overview= | =Overview= | ||
This plugin allows credentials defined in the Jenkins server to be bound to environment variables or parameters to be used fro miscellaneous build steps. It uses a <tt>[[#withCredentials|withCredentials]]</tt> step whose programming model is explained below. | This plugin allows credentials defined in the Jenkins server to be bound to environment variables or parameters to be used fro miscellaneous build steps. It uses a <tt>[[#withCredentials|withCredentials]]</tt> step whose programming model is explained below. The advantage of using this pattern is that the credentials are maintained securely by the Jenkins instance and they are automatically masked in the logs. | ||
=Playground= | =Playground= | ||
{{External|https://github.com/ovidiuf/playground/tree/master/jenkins/pipelines/credentials-binding-plugin}} | {{External|https://github.com/ovidiuf/playground/tree/master/jenkins/pipelines/credentials-binding-plugin}} |
Revision as of 05:42, 10 April 2021
External
- https://wiki.jenkins.io/display/JENKINS/Credentials+Binding+Plugin
- https://plugins.jenkins.io/credentials-binding/
- https://www.jenkins.io/doc/pipeline/steps/credentials-binding/#withcredentials-bind-credentials-to-variables
- https://docs.cloudbees.com/docs/cloudbees-ci/latest/cloud-secure-guide/injecting-secrets
Internal
Overview
This plugin allows credentials defined in the Jenkins server to be bound to environment variables or parameters to be used fro miscellaneous build steps. It uses a withCredentials step whose programming model is explained below. The advantage of using this pattern is that the credentials are maintained securely by the Jenkins instance and they are automatically masked in the logs.
Playground
withCredentials
Injecting Username and Password into a Build Step
A typical pattern to project username and password into a build step:
withCredentials([usernamePassword(credentialsId: 'amazon', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
// available as an env variable, but will be masked if you try to print it out any which way
// note: single quotes prevent Groovy interpolation; expansion is by Bourne Shell, which is what you want
sh 'echo $PASSWORD'
// also available as a Groovy variable
echo USERNAME
// or inside double quotes for string interpolation
echo "username is $USERNAME"
}