GithubとJenkinsの連携をしてみる
参考エントリー:GitHubとJenkins連動 自動デプロイ 開発環境設定編 at ITエンジニアmegadreamsの開発日記
Jenkinsのインストールは終わっています.なので,JenkinsとGithubの連携からはじめます.
さくらVPSにJenkinをインストール - としたにあんの左脳
ここで,
Jenkinsのアップデートしなきゃいけないことに気づき,Jenkinsのアップデートをしました
Jenkinsをアップデート - としたにあんの左脳
ついでにgitインストールしてなかったです.インストールしておきます.
$ sudo apt-get install git
では
JenkinsとGitHubの連携
から始めます.
Gitプラグインのインストールはうまくいきました.
Jenkins用の鍵の生成の際,
cd /var/lib/jenkins cd .ssh (なければmkdir .ssh) sudo -u jenkins -H ssh-keygen -t rsa -C jenkins@hoge.com chmod 744 ../.ssh
となっていますが,.sshを作る際はJenkinsユーザで作るか,作った後に
$ chown jenkins .ssh
で所有者を変更してあげないとうまくいきませんでした.
あと,Jenkinsのgitconfigを設定するときに -H オプションをつけて
$ sudo -u jenkins -H git config --global user.email "jenkins@jenkins-server" $ sudo -u jenkins -H git config --global user.name "jenkins"
としてあげないと,実行ユーザのホームディレクトリを見に行っちゃうみたいです.
sudo -u jenkins -H git config --global --list
してあげるとちゃんと設定できているかわかりました.
コミットされたらJenkinに教えてあげる.
ここでハマりました.
Jenkinsにはアクセス制限をつけていて,ログインをしないと入れないようにしています.
なので,参考エントリーのようにビルド実行のへのリンクをWebHook URLに指定してもうまくいきませんでした.
ここで,このエントリーJenkinsとbitbucket private repository の連携にはnotifyCommitが便利 - Lokiへの日々
Jenkinsの設定は ジョブの設定>ビルド・トリガ > SCMをポーリング にチェックをを入れる
Github側のWebHook URLには
http://<自分のサーバー>/jenkins/git/notifyCommit?url=<git@github.com:foo/hoge>
これでGithubにPushがあった時に,Jenkins側でurl=で指定したリポジトリに関係のあるジョブが実行されるらしいです.
Githubにビルドステータスを表示
参考:GitHub - GHE対応!Jenkinsのビルドステータスをアイコン表示する - Qiita [キータ]
Jenkinsの管理 > プラグインの管理 >利用可能 から embeddable-build-status というプラグインをインストールし,再起動をします.
すると,ジョブの画面に
埋め込み用ステータスアイコン というのができています.
ここの中からMarkdown用のリンクをコピーして,README.mdに貼り付けたらうまくいくと思います.(うまくいってない)