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 [email protected]:user/repo.git HEAD
sudo -u jenkins git ls-remote -h [email protected]: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:
[email protected]: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\[[email protected]: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/[email protected]:user/repo.git
のようにする.
ブラウザ等で実際にURLにアクセスしてみてJobが実行されればOK.
これでBitbucketにpushするとJenkinsに通知が行って, Github pageにデプロイしてくれるようになった.