Ich weiß nicht, wie Sie das Stash Notifier-Plugin auf einer Multi-Branch-Pipeline einrichten. Die Konfigurationsseite enthält keinen Abschnitt "Post-Build-Aktionen".Verwenden Sie Stash-Notifier-Plugin auf Jenkins 2.0 Multi-Branch-Pipeline
Antwort
Verwenden Sie den Stash Notifier, indem Sie ihn als Post Step in Ihrer Jenkins Build Job-Konfiguration hinzufügen.
In Ihrem Jenkins Job-Konfiguration auf die Post-Build gehen Abschnitt Aktionen, auf Post-Build-Aktion klicken Sie auf Hinzufügen und Stash Instanz Geben Sie die Stash Basis-URL, e. g. http://localhost:7990 or http://my.company/stash.
Im Zweifelsfall Benachrichtigen Sie wählen, zu Ihrem lokalen gehen Stash Server und überprüfen Sie die URL im Browser. Die URL http://[email protected]:7991/projects
e. G. gibt die Serverbasis-URL an, die in diesem Fall http://localhost:7991
ist. Verwenden Sie das Credentials-Plugin, um Anmeldeinformationen für den Stash auszuwählen.
Ich denke, es ist immer noch nicht kompatibel mit der Pipelinetyp Pipeline oder Multi-Branch.
Ich denke, Abhijeet Kamble bedeutet, dass Sie einfach einen http-Client oder Curl verwenden können, um die Updates selbst zu senden.
Etwas wie folgt aus:
withCredentials([[$class : 'UsernamePasswordMultiBinding', credentialsId: "$env.componentCredentialsId",
usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
writeFile file: 'build.json', text: "{\"state\": \"SUCCESSFUL\", \"key\": \"${env.JOB_NAME}\", \"name\": \"${env.BUILD_TAG}\", \"url\": \"${env.BUILD_URL}\"}"
sh '''curl -u $USERNAME:$PASSWORD -H "Content-Type: application/json" -X POST $URL -d @build.json'''
}
Sie beachten Sie, dass es sich um ein sehr einfaches Beispiel ist, nicht so anspruchsvoll wie das Plugin.
konnte Plugin nicht funktionieren, weil CredentialsID nicht mit dem neuesten Jenkins 2.x funktioniert ... sie verwenden keine UUID mehr. Das war die einfachste Sache zu tun ... – kenyee
Beachten Sie auch, dass die URL im folgenden Format sein muss: https: //
Stash Notifier unterstützt jetzt Pipelines ab Version 1.11.
node {
step([$class: 'StashNotifier']) // Notifies the Stash Instance of an INPROGRESS build
try {
// Do stuff
currentBuild.result = 'SUCCESS' // Set result of currentBuild !Important!
} catch(err) {
currentBuild.result = 'FAILED' // Set result of currentBuild !Important!
}
step([$class: 'StashNotifier']) // Notifies the Stash Instance of the build result
}
Während es sagt, dass currentBuild.result Einstellung ist, meine Erfahrung ist, dass dies nur der Fall ist, wenn Sie Ihre Schritte nicht bereits das zu tun „Wichtig!“. Wenn Sie z. B. sh "false"
haben, müssen Sie das nicht in try/catch umbrechen, da der Schritt sh
das Build-Ergebnis bei einem Beendigungscode ungleich Null als fehlerhaft festlegen wird. Dies sollte nur erforderlich sein, wenn Sie eine benutzerdefinierte Erfolgs-/Fehlerlogik benötigen.
Als ich meine Frage gestellt: "Die Konfigurationsseite hat keinen 'Post-Build-Aktionen-Abschnitt'." Hat Ihre Jenkins 2 Multibranch-Pipeline einen solchen Abschnitt? –
dies funktioniert nur, wenn Sie einen Standard-jenkins-Job verwenden ... die Frage war, wie es mit Pipeline und ich denke, Sie müssen in der Lage sein, das Plugin als ein Schritt zu nennen. – kenyee