やりたいこと
論文を複数人で書くとき、Git+GitHubで管理したい。しかし、コンパイルが通らない状態でブランチをプッシュされると、そのブランチをマージした人まで困ることになる。
そんなときに、自動テストを導入すれば、事前にテストに合格したものだけマージすることができる。
テストは、コンパイルが通ればテストに合格、通らなければ失敗とします。
TeXで自動テストをする情報がそもそも少ないし、ましてupLaTeXの情報はさらに少ないので書きました。
方法
Travis CIの使い方はさほど難しくないので割愛。.travis.yml
の記述法だけ書いておきます。
before_install:
- mkdir -p $HOME/texlive
- curl -L https://github.com/urdh/texlive-blob/releases/download/20170106/texlive.tar.xz | tar -JxC $HOME/texlive
install:
- export PATH=$PATH:$HOME/texlive/bin/x86_64-linux
- tlmgr update --self
- tlmgr install collection-langjapanese
# 自動テストの時間を短縮するために、最小限のパッケージしかインストールしていません。
# パッケージをTeXファイルに追加した際、自動テストのビルドが失敗する場合はここにも追加してください。
- tlmgr install newtx
- tlmgr install newpx fontaxes kastrup tex-gyre
script:
- ptex2pdf <Filename>.tex -u -l -ot -interaction=batchmode #batchmodeにしないと、TeXのエラーが出たときに入力を求められるので、
#タイムアウト(10分)するまで時間を浪費します。
#必要に応じてupbibtexなども使えます。
気になること
毎回TeXをダウンロードしてくるのは無駄な気がします・・・。最小構成とはいえ、140MBくらいあります。
原因不明でテストが失敗する場合、installで tlmgr update --self --all
を実行するとうまくいくかも知れません。
テスト結果をSkypeに通知する
GitHubのイベントをSkypeのBotに喋らせるをごらんください。