SlackからJenkinsジョブに文字列を渡す


12

理想的な世界では、技術に詳しくない従業員はSlackコマンドを使用してジョブを実行し、結果を彼らに戻し、Jenkins GUIの使用を無効にすることができます。私が見つかりました。スタートスラックコマンドを使用して、ジェンキンスでビルド GitHubの上で、それは1要求するように思われることなど、いくつかの制限が持っている:我々の目的のために素晴らしいではありませんジェンキンスジョブに1比Herokuのインスタンスを、。

私の考えは、人々にのような単数のコマンドを使用し、/jenkinsその後に1つのジョブで解析され、他の下流のキックオフに使用されるパラメーターを使用することです。これにより、1つのスラックコマンド/ 1つのインスタンスが維持されますが、必要な柔軟性はすべて得られます。

問題は、Jenkinsにパラメーターを取得することです。次のワークフローのようなものを描いています。

  1. /Jenkins job2 param1 param2Slackのユーザータイプ。これは、実行する内容を見つけるためにパラメーターを解析するアンブレラジョブを呼び出しています。

  2. コマンドはどういうわけか傘のジェンキンスの仕事に送られます。Herokuインスタンス、直接統合、w / e。

  3. アンブレラジョブはjob2 param1 param2文字列として受け取ります。(おそらく、単一のパラメーターの値として、おそらく複数のフィールドに事前に分割されます)

  4. Umbrellaジョブは、まだ実行されていない場合は文字列を分割し、job2パラメーターparam1とを使用して、ユーザーが実行を希望していると判断しますparam2

  5. Umbrellaジョブはビルドジョブを実行して、呼び出されたとおりにダウンストリームジョブを実行します。これにより、ユーザーに結果がSlackされます。

私をつまずかせているのはステップ2〜3です。SlackからJenkinsジョブに文字列(スペースを含む)を渡すにはどうすればよいですか?

私の前提全体が間違っている場合、私は自分のフレームに挑戦することにもオープンです。

回答:


5

見つけたプラグインは、パラメーターとしてジョブ名を受け取るため、Herokuインスタンスとビルドジョブの比率が1:1ではありません。したがって、1つのHerokuインスタンスから任意の数のジョブを実行できるはずです。

ジョブパラメータでスペースを渡すことに関しては、単語の分割はスペースで行われるため、引用は何も変わりません。おそらく、HTML間隔文字を使用して、%20それが機能するかどうかを確認できますか?

個人的には、プラグインを使用して、ジョブをフィルタリングするのではなく、関連するパラメーターを使用して正しいジョブを直接実行しようとします。


1
正確には、スペース上の分割があなたのリンク上記の数行を作られて、私は確認するために十分に掘るか、それはすべてのスペースに分割されますが、それはウィルクように聞こえるしませんでした
Tensibai

あなたは、このラインにより、スペース上のそれのスプリット正確さgithub.com/joshdholtz/jenkins-slack-command/blob/master/...は引用符やないの周りのパラメータがある場合、それは問題ではないように
マイケル・ペレイラ

うんパラメータはループオーバーされ、再び分割されます=値にスペースが含まれている場合、これは壊れます。%2​​0を使用すると、slackに投稿されたときに機能する可能性がありますが、Jenkinsまたはslackがどのように解析または保持されるかわからないため、テストする必要があります
テンシバイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.