LoginSignup
3
1

More than 5 years have passed since last update.

Travis CIを使ってupLatexの文書の自動テストをする

Last updated at Posted at 2016-12-08

やりたいこと

論文を複数人で書くとき、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に喋らせるをごらんください。

3
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1