自分の作業を出来るだけスムーズにしたい。
と、いう訳でGitへコミットしたタイミングで、
Jenkinsの該当ジョブを実行するように設定してみました。
Gitレポジトリからポーリングしてくるよりも、時間的には相当スムーズになりました。
Jenkins CI
まず、Jenkins側の設定ですが、Jenkins Git Pluginを導入します。すると、ソースコード管理システムのところにGitの選択肢が現れます。
Repository URLに、該当のGitレポジトリを入力。
JenkinsユーザとしてGitからclone出来るかどうかは
コマンドラインで調べておいた方がいいです。
ビルドトリガのSCMをポーリングにチェックを入れますが、
中身は特に何も設定しません。
Git
Gitレポジトリのあるサーバへ行き、レポジトリの中身を編集します。~/repositories/sample.git/hooks
へ移動し、post-receiveを編集します。
もし、GitLab等使っているのであれば、
シンボリックリンクになっていると思うので、
リンクを消してからpost-receiveを作成して下さい。
中身は
#!/bin/sh curl http://[jenkins host name]/git/notifyCommit?url=git@[git host name]:sample.git
と記述します。
Jenkinsのホスト名とGitのホスト名は変更して下さい。
すると、git pushしたタイミングでcurlのログが流れるようになります。
URLを叩かれたJenkinsは該当するレポジトリを参照しジョブを実行します。
0 件のコメント:
コメントを投稿