GithubからJenkinsへのServer Hookを調べた結果をまとめておく。
以下の3つの方法を調べた。
- WebHook URLsを用いる方法
- Jenkins (GitHub plugin) を用いる方法
- Ver1.8で確認
- Jenkins (Git plugin) を用いる方法
- Ver2.0で確認
この方法を用いるとGithubのコードに修正を加えると対応するJenkinsジョブを走らせることができる
WebHook URLsを用いる方法
- Githubからコミットの情報を受け取って自力で処理する方法
- 好きなようにhook処理できるが実装が必要
- Githubの特定ブランチにpushした時だけhookでjenkinsビルドする - Qiita [キータ]が詳しい
Jenkinsの設定
- Jenkins Parameterized Trigger pluginをインストールしておく
HookするJenkinsのジョブの設定
- 「ビルドのパラメータ化」で「文字列」のpayloadを指定しておく
- Hook時にcommitやpushに関するJSON形式のパラメータ(Post-Receive Hooks · GitHub Help)が渡される
- セキュリティ設定時は「リモートからビルド」をチェックして認証トークンを設定しておく
- payloadで渡されたパラメータを解析して対象のリポジトリやブランチのジョブを呼び出すなりする
Githubの設定
- 「Settings」=> 「Server Hooks」=>「WebHook URLs」 で「URL」に[Jenkins URL]/job/[Job Name]/buildWithParametersを指定して「Update Settings」する
- セキュリティ設定時は「URL」に?token=[Token Name]を追加
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 (Git plugin) を用いる方法
- GithubからHookを受け取ると対応したジョブが実行される
Jenkinsの設定
- Git pluginをインストールしておく
- セキュリティ設定は特に必要なさそう(認証ありにしてもhookできた)
HookするJenkinsジョブ設定
- 「ソースコード管理」の「Git」でリポジトリ(ブランチ)を指定しておく
- 「ビルド・トリガ」の「SCMのポーリング」を設定しておく
GIthubの設定
- 「Settings」=> 「Server Hooks」=>「 Jenkins (Git plugin)」で「Jenkins Url」にJenkinsのURLを設定する
その他
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(ジオトラストの証明書) | × | ○ | × |