如何将Git LFS与Travis CI一起使用(错误构建R数据包)

如何将Git LFS与Travis CI一起使用(错误构建R数据包),r,travis-ci,git-lfs,R,Travis Ci,Git Lfs,我在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.pa

我在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()
,您可以在这些行中找到R检查过程。当我在本地机器上运行这些行时,我没有收到任何警告,
update
FALSE

在我的机器上,软件包构建得很好

My.travis.yml:

language: r
sudo: required
warnings_are_errors: false
注意,我还尝试了一个旧的.yaml(在支持
语言:r
之前人们会使用的样式)

我认为问题的出现是因为Travis CI无法找到实际的二进制文件;在GitHub上,这些大型二进制文件只有3行文本。这可能会导致警告


这是与Git LFS相关的问题吗?如果我将Git LFS用于我的私人回购,我可以让Travis通过我的R包吗?

我尝试将Git LFS集成到我的Travis ci构建结构中,但没有成功,我遇到了同样的问题

这里的问题是travis还没有在所有情况下完全支持git lfs。和您一样,我会运行lfs命令,但它不会将二进制文件下载到容器中


我最近没有看到Travis对git lfs实现的任何改进,但在他们的支持得到改善之前,我无法使用它,并且会预见到这些问题。

也许您应该更新到?您是否也可以澄清在构建过程中发生错误的位置?如果它不在您的包中,那么它可能与您正在加载的某个包有关(或者与R-devel本身中的一个临时错误有关)。@Thomas I为这个问题添加了一些上下文。如果你愿意,我可以把完整的日志发到某个地方。我认为这些警告可能是因为我在data/中有.RData文件,它们用
stringi::stri_enc_toascii
编码为ASCII,在很多情况下,非ASCII字符变成了
\032
代码,这只是
NA
。但这只是猜测(因此编码可能看起来不是ASCII)。请注意,我已经检查了所有的.RData文件是否具有最佳压缩。不管怎样,这是我对这些警告的猜测。我不知道该错误是否相关。下面是错误消息的来源:您应该能够在
/data
目录上运行
checkRdaFiles()
,以确定错误的来源。您是否在travis上使用git lfs显式下载文件?据我所知,travis没有任何内置的git lfs支持。我必须在travis上安装git lfs,然后运行
git lfs init
,然后运行
git lfs pull
,以便让它真正下载文件。如果你不这样做,你只会有存根。