Dies ist wahrscheinlich ein 100% iger Benutzerfehler, aber ich kann keinen Pipeline-Job dazu bringen, eine Variable als Kanalnamen in einem slackSend-Schritt zu verwenden.
Dies verwendet sowohl das Slack-Plugin als auch das Build User Vars-Plugin . Ich versuche zu BUILD_USER_FIRST_NAME
identifizieren, auf welchen Kanal Slack zurückgreifen soll (dh derjenige, der den Build startet, sollte derjenige sein, der die Nachricht erhält).
Mit diesem Artikel über die Verwendung des Build-Benutzer-Plugins in einem Pipeline-Job bin ich auf halbem Weg angekommen, aber das Ersetzen der Variablen löst mich aus.
Der relevante Teil des Jobs sieht so aus.
stage ('message') {
wrap([$class: 'BuildUser']) {
sh "printf '%s' ${BUILD_USER_FIRST_NAME} > name.txt"
}
archiveArtifacts artifacts: 'name.txt'
name = readFile('name.txt')
echo "name is $name" //works fine, I get Alex
if ( "$output" != null ) {
slackSend (channel: '@$name', color: '#36A64F', message: "Job succeeded")
} else {
slackSend (channel: '@$name', color: '#36A64F', message: "Job failed")
}
}
Ich habe Folgendes anstelle des Kanalbits versucht, alle sind mit unbestimmten Slack post may have failed. Response: Invalid channel specified
Fehlern fehlgeschlagen .
channel: '@${name}',
channel: '@" + ${name} + "',
channel: '@"${name}"',
Die erwartete Ausgabe wird aufgelöst channel: '@Alex',
Was ist die richtige Syntax?