くりにっき

フルスタックキュアエンジニアです

Jenkinsのビルド後にgh-pagesにpushする

以前書いた GithubのリポジトリでJavaDocを公開する - sue445's Blog というエントリでJavaDocをgh-pagesに公開する方法書いていましたが、それをJenkinsで自動化してみます。

0. 前提

上記のエントリを参考にmavenJavaDocが作られるようにしておいてください

1. Post build task pluginをインストールする

Jenkinsのビルド終了後に任意のスクリプトを実行するためのプラグイン

Post build task - hudson - Hudson Wiki

2. gh-pagesにpushするスクリプトをワークスペースに入れる

https://github.com/sue445/s3tiger/blob/master/script/deploy-gh-pages.sh

を参考に。REPO_URLの部分は適宜変えてください。

3. Jenkinsのジョブ設定に追加する

ビルド

f:id:sue445:20130211214825p:plain

test compile site

ビルド後の処理の追加 → Post build task

f:id:sue445:20130211214851p:plain

./script/deploy-gh-pages.sh "$WORKSPACE" "$BUILD_NUMBER" "$BUILD_ID"

4. ディレクトリ構成

だいたいこんな感じになります

workspace
  script/
    deploy-gh-pages.sh …ビルド後にsiteをtmp/repoにコピーしてgithubにpushする
  site/ …mavenで作られたJavaDocファイルなど
  tmp/
    repo/ …gh-pagesにpushするための作業ディレクトリ

うまくいけばtmp/repoがgithubにpushされるはず

おまけ

Jenkinsを動かしてるユーザ (自分の場合はtomcatユーザ) のメールアドレスを Gravatar に登録しておけばJenkinsの顔をgithubに表示させることもできます

f:id:sue445:20130211215608p:plain
https://github.com/sue445/s3tiger/commit/b70f851e8339723488d4731dd6e9410069643988

最後に

今回はmavenで作ったJavaDocをgh-pagesにpushしましたが、応用すれば他の静的ファイルでもアップロードできると思います。