有人可以指出一个工作示例,其中packrat与AppVeyor一起使用以构建R包吗?通过Google和GitHub搜索,我找不到使用AppVeyor的任何启用packrat的软件包。
appveyor.yml文件是否需要更改?我需要通过AppVeyor网站添加一些设置吗?
我有一个破坏AppVeyor构建的非常小的程序包(testthat
是唯一的依赖项)。这是code frozen for that commit。这是AppVeyor log。
(如果这个SO问题听起来很熟悉,那么我将要ask a similar question for Travis-CI。)
最佳答案
是的,这里的解决方案类似于same question for Travis-CI。
这是一个appveyor.yml
文件的示例,该文件使您能够在软件包中使用packrat软件包:
# DO NOT CHANGE the "init" and "install" sections below
# Download script file from GitHub
init:
ps: |
$ErrorActionPreference = "Stop"
Invoke-WebRequest http://raw.github.com/krlmlr/r-appveyor/master/scripts/appveyor-tool.ps1 -OutFile "..\appveyor-tool.ps1"
Import-Module '..\appveyor-tool.ps1'
install:
ps: Bootstrap
# Adapt as necessary starting from here
environment:
global:
WARNINGS_ARE_ERRORS: 0
USE_RTOOLS: true
build_script:
- R -e "0" --args --bootstrap-packrat
test_script:
- travis-tool.sh run_tests
on_failure:
- 7z a failure.zip *.Rcheck\*
- appveyor PushArtifact failure.zip
artifacts:
- path: '*.Rcheck\**\*.log'
name: Logs
- path: '*.Rcheck\**\*.out'
name: Logs
- path: '*.Rcheck\**\*.fail'
name: Logs
- path: '*.Rcheck\**\*.Rout'
name: Logs
- path: '\*_*.tar.gz'
name: Bits
- path: '\*_*.zip'
name: Bits
与the template不同的重要部分是:
environment:
global:
WARNINGS_ARE_ERRORS: 0
USE_RTOOLS: true
build_script:
- R -e "0" --args --bootstrap-packrat
这将启用Rtools进行构建,并加载packrat软件包。
同样重要的是要注意,我们排除了
- travis-tool.sh install_deps
,因为这将导致从CRAN下载您依赖的软件包,而不是从packrat目录构建。这是一个工作正常的简单R包的Appveyor构建示例:https://ci.appveyor.com/project/benmarwick/javaonappveyortest/build/1.0.21
关于r - 使用Packrat和AppVeyor构建R软件包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29996468/