これはおそらく100%のユーザーエラーですが、slackSendステップでチャネル名として変数を使用するパイプラインジョブを取得できません。
これはSlackプラグインとBuild User Varsプラグインの両方を使用します。私はBUILD_USER_FIRST_NAME
Slackに戻るチャネルを特定するために使用しようとしています(つまり、ビルドを開始するチャネルがメッセージを取得するチャネルでなければなりません)。
パイプラインジョブでビルドユーザープラグインを使用する方法に関するこの記事の途中まで来ましたが、変数を置き換えると問題が発生します。
ジョブの関連部分は次のようになります。
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")
}
}
チャネルビットの代わりに以下を試しましたが、すべて不確定Slack post may have failed. Response: Invalid channel specified
エラーで失敗しました。
channel: '@${name}',
channel: '@" + ${name} + "',
channel: '@"${name}"',
期待される出力は、次のように解決されることです。 channel: '@Alex',
適切な構文は何ですか?