GithubからJenkinsへのServer Hook

  • 158
    Like
  • 2
    Comment
More than 1 year has passed since last update.

GithubからJenkinsへのServer Hookを調べた結果をまとめておく。
以下の3つの方法を調べた。

  • WebHook URLsを用いる方法
  • Jenkins (GitHub plugin) を用いる方法
    • Ver1.8で確認
  • Jenkins (Git plugin) を用いる方法
    • Ver2.0で確認

この方法を用いるとGithubのコードに修正を加えると対応するJenkinsジョブを走らせることができる


WebHook URLsを用いる方法

Jenkinsの設定

HookするJenkinsのジョブの設定

  • 「ビルドのパラメータ化」で「文字列」のpayloadを指定しておく
  • セキュリティ設定時は「リモートからビルド」をチェックして認証トークンを設定しておく
  • payloadで渡されたパラメータを解析して対象のリポジトリやブランチのジョブを呼び出すなりする

Githubの設定

  • 「Settings」=> 「Server Hooks」=>「WebHook URLs」 で「URL」に[Jenkins URL]/job/[Job Name]/buildWithParametersを指定して「Update Settings」する
    • セキュリティ設定時は「URL」に?token=[Token Name]を追加

webhook.jpg


Jenkins (GitHub plugin) を用いる方法

  • GithubからHookを受け取ると対応したジョブが実行される

Jenkinsの設定

  • GitHub pluginをインストールしておく
  • セキュリティ設定は特に必要なさそう(認証ありにしてもhookできた)

HookするJenkinsのジョブ設定

  • 「ソースコード管理」の「Git」でリポジトリ(ブランチ)を指定しておく
  • 「ビルド・トリガ」の「Build when a change is pushed to GitHub」を設定しておく

Githubの設定

  • 「Settings」=> 「Server Hooks」=>「 Jenkins (Github plugin)」で「Jenkins Url」に[JenkinsのURL]/github-webhookを設定する

jenkins-github-plugin.jpg


Jenkins (Git plugin) を用いる方法

  • GithubからHookを受け取ると対応したジョブが実行される

Jenkinsの設定

  • Git pluginをインストールしておく
  • セキュリティ設定は特に必要なさそう(認証ありにしてもhookできた)

HookするJenkinsジョブ設定

  • 「ソースコード管理」の「Git」でリポジトリ(ブランチ)を指定しておく
  • 「ビルド・トリガ」の「SCMのポーリング」を設定しておく

GIthubの設定

  • 「Settings」=> 「Server Hooks」=>「 Jenkins (Git plugin)」で「Jenkins Url」にJenkinsのURLを設定する

jenkins-git-plugin.jpg


その他

githubからのHookアクセスIPについて

GithubのWebHookの説明によると204.232.175.64/27, 192.30.252.0/22らしい。

https://api.github.com/metaのhooksで確認可能(コメントで教えて頂きました)
* API仕様:Meta | GitHub API

httpsでのHookについて

  • 2013/11/07時点のhttpsでのHookはWebHook URLs/Jenkins (GitHub plugin) /Jenkins (Git plugin) でほぼ不可能だった

    • JenkinsでHookされない、Apacheレベルでログが残っていない
    • GitHub pluginのコメントでGithubの問題でhttpsが使えないらしいというものがあった
  • Hook可否について(×:Hook不可、○:Hook可)

- WebHook URLs Jenkins (GitHub plugin) Jenkins (Git plugin)
https(自己署名証明書) × × ×
https(ジオトラストの証明書) × ×