BitbucketにOctopressのsourceブランチを置き, pushしたらJenkinsがGithub pageにデプロイするようにする.
目次
- 環境
- 公開鍵認証用の鍵の生成と登録
- プラグインのインストール
- ジョブを作成
- 確認
なお,
を参照.
環境
- CentOS release 6.4 (Final)
公開鍵認証用の鍵の生成と登録
cd /var/lib/jenkins
sudo -u jenkins -H ssh-keygen -t rsa
パスフレーズは設定しない. 出来た公開鍵(/var/lib/jenkins/.ssh/id_rsa.pub)の中身をBitbucketとGithubに登録しておく.
また, BitbucketとGithubに接続してknown hostsに加えておく.
sudo -u jenkins git ls-remote -h git@github.com:user/repo.git HEAD
sudo -u jenkins git ls-remote -h git@bitbucket.org:user/repo.git HEAD
プラグインのインストール
Manage Jenkins > Manage Plugins > Availableと進み, Git pluginとrbenv pluginにチェックを入れてInstall without restartをクリック.
ジョブを作成
- トップページでNew Jobをクリック
- Job nameを記入し, Build a free-style software projectを選択してOKをクリック
これで新しいジョブが作成される. 詳細設定は以下のようにする.
- Source Code Management: Git
- Repository URL:
git@bitbucket.org:user/repo.git - Branches to build:
source - Build Triggers: Poll SCM (Scheduleは空白)
- Build Environment: Rbenv build wrapperにチェック
- Version: 1.9.3-p194
- Preinstall gem list: bundler,rake
- Build > Add build step > Execute shell
- Command: 下に記載
export PATH="/var/lib/jenkins/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
rbenv exec bundle install --path vendor/bundle
rbenv exec bundle exec rake setup_github_pages\[git@github.com:nomnel/nomnel.github.io.git\]
rbenv exec bundle exec rake gen_deploy
2回目以降はsetup_github_pagesの行は必要ないので消してもよい.
トリガの登録
参考: Kohsuke Kawaguchi » Polling must die: triggering Jenkins builds from a git hook
BitbucketのリポジトリのServicesでPOSTを追加. URLはhttp://your.domain/jenkins/git/notifyCommit?url=git@bitbucket.org:user/repo.gitのようにする.
ブラウザ等で実際にURLにアクセスしてみてJobが実行されればOK.
これでBitbucketにpushするとJenkinsに通知が行って, Github pageにデプロイしてくれるようになった.