ブログ

ryuzeeによるブログ記事。不定期更新
アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料)

ReVIEW + Jenkinsでドキュメントを常時ビルドする

ReVIEWはマークアップ言語でソースを記述することで、html形式やPDF形式の綺麗な体裁の文書を作れるオープンソースのツールです。入手はhttp://github.com/kmuto/review から可能です。例えば

= 章
== 節
=== 項
 * 箇条書き
 * 箇条書き

のような書き方をするとhtmlであれば、それぞれh1〜h3に変換されたり、ulに変換されたりします。PDFの場合は予め規定された体裁に変換されます。

今回は、Windows Azure上の仮想マシン(Ubuntu12LTS)上で、このドキュメントを常時ビルドする方法を紹介します。

ReVIEWのインストール

ReVIEWは動作にrubyが必要です。また最新版はgithubにて提供されていますので、gitを導入しておきます。

sudo su
apt-get install ruby
apt-get install git

ReVIEWを配置し、PATHに追加します。

cd /usr/local
git clone https://github.com/kmuto/review.git
vi /etc/bash.bashrc

以下の内容を追加します。

export PATH=$PATH:/usr/local/review/bin

ReVIEWでPDFを作るために、TeX Live 2011を導入します。パッケージはかなり膨大(2500個くらいダウンロードする)なので導入には多少時間がかかります。Windows Azure上の仮想マシンで約1時間です。

cd /tmp
wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar xvf install-tl-unx.tar.gz
cd install-tl-20121018
perl ./install-tl
/usr/local/texlive/2012/bin/x86_64-linux/tlmgr path add

またotf.styとjumoline.styをインストールします。

cd /tmp
wget http://ftp.kddilabs.jp/TeX/ptex-win32/current/otfbeta.tar.xz
tar xvf otfbeta.tar.xz
cd share/texmf/
cp -Rv * /usr/local/texlive/texmf-local/
mktexlsr

cd /tmp
wget http://www.htc.nagoya-u.ac.jp/~yamamoto/lecture/tex/stylemacro/jumoline.sty
cp -p jumoline.sty /usr/local/texlive/texmf-local/tex/platex/misc/
mktexlsr

最後にcid-x.mapを更新します。

vi /usr/local/texlive/2012/texmf/fonts/map/dvipdfmx/cid-x.map

編集は末尾に以下を追加します。

hminr-h     H               Ryumin-Light
hminr-v     V               Ryumin-Light
otf-ujmr-h  UniJIS-UTF16-H  Ryumin-Light
otf-ujmr-v  UniJIS-UTF16-V  Ryumin-Light
otf-cjmr-h  Adobe-Japan1-6  Ryumin-Light
otf-cjmr-v  Identity-V      Ryumin-Light

hgothr-h    H               GothicBBB-Medium
hgothr-v    V               GothicBBB-Medium
otf-ujgr-h  UniJIS-UTF16-H  GothicBBB-Medium
otf-ujgr-v  UniJIS-UTF16-V  GothicBBB-Medium
otf-cjgr-h  Adobe-Japan1-6  GothicBBB-Medium
otf-cjgr-v  Identity-V      GothicBBB-Medium

以上で、ReVIEWの準備は完了です。

テスト用のソースを準備する

今回はサンプルを用意しました。 https://github.com/ryuzee/review_sample

まずはビルドをテストするために、サーバ上の一般ユーザーアカウントで、

cd /tmp/
git clone https://github.com/ryuzee/review_sample.git
cd review_sample
review-pdfmaker sample.yaml

これでsample.pdf が作成されるはずです(確認が終わったら/tmp/review_sampleは削除してください)

Jenkins環境の準備

次に常時ビルドの環境を用意します。ソースコードはgithubで管理する前提です。

Jenkinsが導入されていない場合は導入します。今回はaptでパッケージも公開されているのでそれを利用しました。

sudo apt-get install jenkins

gitを使うのでプラグインを導入します。GitHub pluginを管理画面から導入しておきます。

次にJenkinsからGithubにアクセスするための準備をします。 以下のようにしてjenkinsアカウントからGithubに接続するための鍵ペアや接続設定をします。 なお、このときパスフレーズは空にします。また鍵はgithub.keyという名前で保存することとします。 以下の作業はjenkinsアカウントです。

sudo su
su - jenkins
cd ~/.ssh
ssh-keygen -t rsa -C jenkins@your.domain

ここで作った公開鍵(末尾に.pubがついているもの)をgithubのユーザーアカウントに登録しておきます。

次に~/.ssh/config を作成します。内容は以下の通りです。

Host github.com    HostName        github.com
    IdentityFile    ~/.ssh/github.key
    User            git

jenkisユーザーのgitの設定を行います。

git config --global user.email "jenkins@your.domain"
git config --global user.name "Jenkins"

ここまでできたら念のためjenkinsユーザーで触れるか確認しておきます。 ここでエラーが出る場合は、ここまでの作業を確認してください。よくあるのは秘密鍵のパーミッションです。

cd /tmp
git clone git@github.com:ryuzee/review_sample.git

ここまでできたらJenkinsの設定に戻ります。 新規のフリースタイルジョブを作ります。プロジェクト名はなんでも構いません。 gitの設定は以下のように、Githubのレポジトリ接続情報を設定します。

ビルドはGithubに定期的にポーリングする形とします。

ビルドの定義はシェルの実行を選択し、以下のように入力します。

cd ${WORKSPACE} && export PATH=$PATH:/usr/local/review/bin && review-pdfmaker sample.yaml && mkdir -p ${WORKSPACE}/build && mv sample.pdf ${WORKSPACE}/build/

ここでは取得したソースのディレクトリに移動し、review-pdfmakerを実行して、できたPDFを${WORKSPACE}/build ディレクトリに上書きで配置していきます。

以上で作業は完了です。これでビルドを実行します。

ビルドが完了するとworkspaceの中に以下のようにPDFができます。

以上で作業は完了です。 あとは、自分の端末で原稿を修正し、githubにpushすれば5分間隔でビルドされPDFが作成されます。 必要に応じてビルドの結果をメールで通知したりしてください。