对于基于RcppArmadillo的软件包,Travis CI构建失败

时间:2018-03-08 20:27:22

标签: r travis-ci rcpp

我有一个奇怪的拼凑Travis CI构建失败的一个包运行没有错误我的macOS High Sierra与XCode 9.3和当前的R版本。问题似乎来自于无法在我的包中处理基于RcppArmadillo的函数。

失败的构建是here,但总而言之,软件包在OS X和R 3.3上传递,在Ubuntu和R 3.3上失败,在OS X和R 3.4上传递,在Ubuntu和R 3.4上失败,错误在OS X和R 3.5上,传递Ubuntu和R 3.5。

在Ubuntu上发生了两次构建失败,因为我的程序包中基于RcppArmadillo的函数的代码示例失败并出现Aborted (core dumped)错误,我发现这些错误非常简单,特别是因为程序包似乎加载没有任何问题到包安装日志。我也不明白为什么它在Ubuntu上使用R的开发版本可以正常工作。

OS X和R 3.5上的错误发生是因为它无法构建RcppArmadillo(即使它可以在R的旧版本和当前版本上执行此操作)。我无法弄清楚为什么包可以同时工作操作系统,但对于不同版本的R.这是我的代码问题还是Travis的问题?

我的Travis yml file如下:

language: r
r:
  - oldrel
  - release
  - devel
cache: packages
sudo: false
os:
- osx
- linux
osx_image: xcode9
dist: trusty
install:
  - R -e 'install.packages(c("dplyr", "purrr", "purrrlyr", "Rcpp", "RcppArmadillo", "knitr", "ggplot2", "rmarkdown", "testthat", "covr"))'
compiler: gcc
r_packages:
  - covr
after_success:
  - Rscript -e 'library(covr);codecov()'

install.packages()命令在那里,因为已知devtools在R的开发版本中表现不可预测。

人员更新将来搜索此问题:

通过仔细的实验​​,我弄清楚是什么打破了Linux上R 3.3和3.4的构建。这是for循环中一个简单的索引超出范围错误。为什么这个功能仍能在Mac和Linux + R-devel上完全按预期工作,尽管这个错误仍然是一个开放的谜。

0 个答案:

没有答案