Je sais que c'est vieux, mais... Avec les pipelines, c'est extrêmement simple. Voici un exemple de pipeline qui va imprimer les informations d'identification dans la console :
node {
def creds
stage('Sandbox') {
withCredentials([usernamePassword(credentialsId: 'my-creds', passwordVariable: 'C_PASS', usernameVariable: 'C_USER')]) {
creds = "\nUser: ${C_USER}\nPassword: ${C_PASS}\n"
}
println creds
}
}
L'exécution de ce pipeline produit le résultat suivant dans la console :
Started by user First Last (username)
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] node
Running on Jenkins in /jenkins/workspace/sandbox
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Sandbox)
[Pipeline] withCredentials
[Pipeline] {
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] echo
User: testuser
Password: Ab37%ahc*z
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
L'astuce ici est que les informations d'identification ne sont masquées qu'à l'intérieur de la balise withCredentials
bloc. Si vous les affectez à une variable définie en dehors du bloc et que vous imprimez ensuite cette variable en dehors du bloc, aucun masquage n'est appliqué. Ce problème a été signalé comme un bogue, mais rien n'a été fait à ce sujet.