我想为Github上托管的R项目设置Travis CI,不是包。不幸的是,官方的R Travis支持似乎与包裹相当硬(这是公平的,这是有道理的。)
有没有机会让这个工作用于非包装代码,或者是我唯一的求助于分支r-travis并根据我的规格进行修补?我觉得很难做到这一点。
这是我失败的Travis配置:
language: R
r_github_packages:
- klmr/modules
r_binary_packages:
- testthat
script: make test
此操作失败,并显示以下错误:
命令
"Rscript -e 'deps <- devtools::install_deps(dependencies = TRUE);if (!all(deps %in% installed.packages())) { message("missing: ", paste(setdiff(deps, installed.packages()), collapse=", ")); q(status = 1, save = "no")}'"
失败并在1期间退出。
这是有道理的:devtools::install_deps
仅适用于包的上下文。
我已经尝试通过在我的配置中添加install: true
来取消安装步骤。但是,现在不再安装依赖项,因此构建因
loadNamespace(name)出错:没有名为'modules'的包
答案 0 :(得分:4)
事实证明,天真的方法相当容易;以下(完整 .travis.yml
)适用于我的目的:
language: R
install:
- Rscript -e 'install.packages(c("devtools", "testthat"))'
- Rscript -e 'devtools::install_github("klmr/modules")'
script: make test
但是,我仍然更喜欢可以实际使用Travis声明(r_binary_packages
等)的解决方案,而不必手动安装依赖项。
答案 1 :(得分:2)
我正在寻找一个更基本的设置来开始。这对我来说很有效。
.travis.yml
:
language: r
install:
- Rscript install_packages.R
script:
- Rscript testthat.R
install_packages.R
:
install.packages('testthat')
testthat.R
:
library(testthat)
test_that('blabla', {
expect_equal(1+2, 3)
})