【Rパッケージ】appveyor.ymlの注意点
これはなに
久しぶりにRパッケージのメンテをしていてハマったので備忘録としてメモ。タイトル通りappveyorでコードをテストするときの注意点です。
Appveyorとは
Rパッケージ等のソフトウェアのチェックをする際に使われるCI (継続的インテグレーション) ツールの一つで、有名なものとしてTravisがありますが、AppveyorはOSとしてWindowsを使うことを前提としたものです。
Unix系でもWindowsでも正しく動作することを確認するのはとても重要です。
RパッケージでAppveyorを使う
Rパッケージの開発でAppveyorを使うには、以下のコードをパケージのプロジェクト内で叩くだけでOKです。
usethis::use_appveyor()
このコードだけで、 appveor.yml
が生成され、GitHubの連携ページに遷移するのでそこでサインインすれば、Githubにプッシュした瞬間にチェックが走ります。
appveyor.ymlの注意点
本題です。
基本的にはappveyor.ymlはいじる必要がないのですが、自作パッケージの依存パッケージにC++ベースのパッケージが使われている場合は要注意です。そのままAppveyorで走らせるとエラーになるかもしれません。
原因はWindowsとC++関連のアレです。WindowsにはC++コンパイラが入っていないから〜....というやつです。
例えば rstan パッケージをWindowsでインストールするとき、コンパイラがないとポップアップウィンドウが出てきてRtoolsをインストールするか聞いてきます。このRtoolsがないとC++内蔵のRパッケージはうまく動きません。
appveyor.ymlに何も変更がないとこの問題が起きるので、以下を追記してやります。
environment: USE_RTOOLS: true
位置はビルド前ならどこでも良いのですが、僕はビルド( build_script:
)直前に書きました。
参考
https://help.appveyor.com/discussions/problems/18945-failed-build-due-to-tibble-installation