Jenkinsからチャットツールにビルド結果を通知してChatOpsのような仕組みを試行した際の備忘録。
基本情報
- 執筆:2018/08/31
- OS:Windows Server 2008
- Jenkins:2.121.3
tl;dr(ここだけ読めば使えます)
- JenkinsにHTTP Request Pluginを導入
- (今回のケースはpipelineスクリプトを利用しているので)以下のようなスクリプトで。
httpRequest url: "https://httpbin.org/ip", httpMode: 'GET', contentType: 'APPLICATION_JSON'
- 訳あってWindowsのサービスとしていなかったため、JVMの引数として以下を追加
-Dhttps.proxyHost=ホスト名
-Dhttps.proxyPort=ポート番号
※おそらくWindowsのサービスとして起動されている場合はシステムプロパティからProxyの設定を引っ張ってこれるのだと思うが、今回は訳あって手動でJVMを起ち上げたため、引っ張ってこれなかったと推測される。
ハマったポイント
-
MissingPropertyException等
インターネットに転がっているコードをコピペして実行してみるも色々例外が発生して動かず…。原因はそれなりに調査してみたが、よく分からなかったので、生のgroovyスクリプトで回避する案は見切りをつけ、HTTP Request Pluginにスイッチ。(java, groovy, jenkinsの知識不足から原因究明には至らず。) -
jenkinsのプロパティ設定が(実は)使われていなかった
HTTP Request PluginでHTTP POSTの送信を試みるもタイムアウトエラー。(例外は出なくなったので1歩進んだ。)jenkinsを搭載するサーバのブラウザでHTTP POSTは送信可能であることは確認できていたため、jenkinsのプロキシ設定(プラグインマネージャー >> 高度な設定)を疑い始めるが正しく設定されており、アップデートやプラグインのダウンロードはちゃんとできるので益々「?」悩みつつ調べを進めていくと…
https://issues.jenkins-ci.org/browse/JENKINS-25801
このプラグインはシステムプロパティを参照するような記載を発見し解決。
同僚の記事に似たような内容があったので、一通り目を通しておくべきだったと痛感。 そんな弊社ではエンジニアを募集中です。こちらも見て頂けると嬉しいです。 https://www.nittsu-infosys.com/recruit/2019/index.html