Checkout SVN avec les informations d'identification dans Jenkins pipeline?
Comment puis-je vérifier un dépôt Subversion, qui nécessite une identification de l'utilisateur, par l'intermédiaire d'un Jenkins pipeline groovy script? Il semble que le haut- svn
commande ne prend pas en charge les informations d'identification, alors j'ai essayé un code comme ceci:
node {
stage 'checkout'
withCredentials([[$class: 'UsernamePasswordMultiBinding',
credentialsId: '34761a89-1402-47d7-96e2-aec22ffdc50b',
usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
sh "svn co https://trac.nci.org.au/svn/cable/branches/$SVN_BRANCH --username $USERNAME --password $PASSWORD cable_branch"
}
}
Mais cela échoue avec
groovy.lang.MissingPropertyException: No such property: USERNAME 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 com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:23)
at com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:17)
at WorkflowScript.run(WorkflowScript:5)
at ___cps.transform___(Native Method)
...
Ce qui me manque?
OriginalL'auteur naught101 | 2016-04-27
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le Extrait de Générateur pour Général SCM étape. Cela affiche les familiers de la Subversion des options de configuration, et prend les informations d'identification de paramètre comme d'habitude.
L'Extrait de code Générateur va produire un peu moche de la représentation de votre paramètre de sélections et ressemble à quelque chose comme ceci:
Avis que le distance section, on utilise les guillemets doubles, de sorte que la variable $SVN_BRANCH se substituer correctement.
Ok, cela fonctionne, quand j'utilise
remote: 'https://trac.nci.org.au/svn/cable/branches/' + SVN_BRANCH
. Merci!Comme je l'ai mentionné à la fin du post, vous avez besoin d'utiliser des "guillemets" pour le Groovy pour développer la variable à l'intérieur de la chaîne.
Quel type d'informations d'identification sont credentialsId ici? nom d'utilisateur et le mot de passe?
C'est l'ID de l'identification de l'entrée que vous avez configuré dans Jenkins, il suffit d'ajouter
/credentials
à votre Jenkins-URL et vous arriverez à la gestion des informations d'identification.OriginalL'auteur OltzU
Juste ajouter quelques captures d'écran pour OltzU réponse:
Étape 1:
Étape 2:
OriginalL'auteur Robin Qiu