【发布时间】:2015-11-09 13:32:56
【问题描述】:
我在 Travis-ci 上构建了一个 R 包(私人仓库,所以我不能直接共享链接)。我也在使用 Git LFS。我从 travis 收到以下错误消息:
Warning in checkRdaFiles(Sys.glob(c(file.path(ddir, "*.rda"), file.path(ddir, :
NAs introduced by coercion
Warning in checkRdaFiles(Sys.glob(c(file.path(ddir, "*.rda"), file.path(ddir, :
NAs introduced by coercion
Warning in checkRdaFiles(Sys.glob(c(file.path(ddir, "*.rda"), file.path(ddir, :
NAs introduced by coercion
Error in if (any(update)) { : missing value where TRUE/FALSE needed
Execution halted
The command "R CMD build ." failed and exited with 1 during .
Your build has been stopped.
这些错误来自tools::checkRdaFiles(),您可以在Here 的这些行中找到 R 检查过程。当我在本地机器上运行这些相同的行时,我没有收到任何警告,update 是 FALSE。
在我的机器上,包构建良好。
我的 .travis.yml:
language: r
sudo: required
warnings_are_errors: false
注意,我还尝试了一个较旧的 .yaml(在支持 language: r 之前使用的样式)。
我认为问题的出现是因为 Travis CI 无法找到实际的二进制文件;在 GitHub 上,那些大型二进制文件只有 3 行文本。这可能会导致警告。
这是与 Git LFS 相关的问题吗?如果我将 Git LFS 用于我的私人仓库,我可以让 Travis 传递我的 R 包吗?
【问题讨论】:
-
也许你应该更新到native R Travis support?
-
您能否澄清一下错误发生在构建的哪个位置?如果它不在您的包中,则可能与您正在加载的包之一有关(或 R 开发本身中的临时错误)。
-
@Thomas 我为这个问题添加了一些上下文。如果您愿意,我可以在某处发布完整的日志。我认为这些警告可能是因为我在 data/ 中有 .RData 文件,这些文件使用
stringi::stri_enc_toascii编码为 ASCII,并且在很多情况下,非 ascii 字符变成了\032代码,即NA。但这是一个猜测(因此编码可能显示为非 ASCII)。请注意,我已经检查以确保所有 .RData 文件都具有最佳压缩率。无论如何,这是我对这些警告的猜测。我不知道错误是否相关。 -
这里是错误消息的来源:github.com/wch/r-source/blob/… 您应该能够在您的
/data目录上运行checkRdaFiles()来确定错误的来源。 -
您是否在 travis 上使用 git-lfs 明确下载文件?据我所知,travis 没有任何内置的 git-lfs 支持。我必须在 travis 上安装 git-lfs,然后运行
git lfs init,然后运行git lfs pull,以便让它实际下载文件。如果你不这样做,你只会有存根。