到目前为止我一直在成功使用travis-ci,但是在使用带有R 3.4.0的travis-ci时,在“构建包”部分中出现以下错误时遇到了麻烦:
* installing the package to build vignettes
* creating vignettes ... ERROR
Error in loadVignetteBuilder(vigns$pkgdir) :
vignette builder 'knitr' not found
Calls: <Anonymous> -> loadVignetteBuilder
Execution halted
当我在本地运行R-CMD-check时它会通过,我不会收到任何错误
这是当前的.travis.yml
language: R
sudo: false
install:
- R -e "0" --args --bootstrap-packrat
cache:
directories:
- $TRAVIS_BUILD_DIR/packrat/src
- $TRAVIS_BUILD_DIR/packrat/lib
packages: true
r_packages:
- covr
after_success:
- Rscript -e 'library(covr); codecov()'
DESCRIPTION中有一个插图线:
VignetteBuilder: knitr
knitr也在我的packrat.lock文件中,packrat用于构建.travis.yml .
我试过以下无济于事:
-
为.travis.yml中的r_packages添加了knitr
-
为DESCRIPTION中的Imports添加了knitr
-
将
r_check_args: "--no-vignettes"
添加到了travis.yml,希望能够跳过小插图构建步骤 . -
在travis.yml中添加了从
install
到before_install
的packrat调用
我非常清楚构建R软件包,不介意travis-ci所以我不确定我是否理解为什么vignette构建器无法访问knitr包 .
回购:https://github.com/cormac85/datakindr
特拉维斯:https://travis-ci.org/cormac85/datakindr
2 回答
一个潜在的问题涉及description file中的'Imports'和/或'Suggests'部分 .
dplyr需要在您的建议中,如果不是进口 .
参见Hadley 's 2015 O' Reilly book,R Packages:
所以最后我通过从.travis.yml中删除packrat配置并将其替换为正常的包构建配置:
cache: packages
来获得构建 .我使用的packrat配置是在Travis R Documentation中建议的,并且适用于包中的其他项目,但在构建期间它不适用于
loadVignetteBuilder()
步骤 .