新しいチェックイン用の GitHub フックがありますが、Jenkins (RedHat OpenShift カートリッジで実行中) によって受信されません。
設定
- Jenkins を実行する RedHat OpenShift カートリッジ
- Jenkins プラグインのインプレイ
- GitHub プラグイン v1.8
- Github 認証プラグイン v0.14
- Jenkins GIT クライアント プラグイン v1.4.5
- Jenkins GIT プラグイン v2.0
- パブリック GitHub リポジトリ
デバッグ
特に OpenShift と通信する GitHub に絞り込みましたが、これ以上のトラブルシューティング方法や問題の解決方法がわかりません。絞り込むために、次の手順を実行しました。
- GitHub で次のタイプのサービス フックをそれぞれ 1 つ構成し、その結果を RequestBin にキャプチャした
- WebHook URL
- Jenkins GitHub プラグイン
- Jenkins Git プラグイン
- 次に、GitHub から Test Hook を実行しました
- 各 RequestBin から得られたヘッダーとペイロードを取得し、Webhook エンドポイントを指す POST 要求を Fiddler で手動で作成しました
- com.cloudbees.jenkins.GitHubWebHookに対してログを記録することで、Jenkins で何らかのアクションが見られました
ただし、GitHub からのテスト フックとリポジトリへのチェックインは、少なくともログで証明されているように、サーバーに到達しませんでした。
SSLの問題に絞り込んだと思います。SSL/HTTPS のみに応答するため、GitHub は Webhook を OpenShift 構成の Jenkins カートリッジにポストしません。缶詰の Jenkins カートリッジがどのように構成されているか、または SSL を使用するかどうかを変更する方法の詳細がわかりません。
OpenShift カートリッジが SSL を使用するかどうかを変更することは可能ですが、私はそれに時間を費やしたくありませんでした。解決策は、独自のカートリッジ定義を作成することです。ここで、すべての設定、特にどのエンドポイントを作成するかを指定できます。これは、誰かがそのルートに行きたい場合に備えて、適切なエンドポイントを生成するための OpenShift リファレンスです。