如何为非包装代码设置Travis?

时间:2016-02-10 18:01:54

标签: r travis-ci

我想为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'的包

2 个答案:

答案 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)
    })