5

有人可以指出一个工作示例,其中PackratAppVeyor一起使用来构建 R 包?通过谷歌和 GitHub 搜索,我找不到任何使用 AppVeyor 的 packrat-enable 包。

appveyor.yml 文件是否需要更改?我需要通过 AppVeyor 网站添加一些设置吗?

我有一个非常小的包(testthat是唯一的依赖项),它破坏了 AppVeyor 的构建。这是为该提交冻结的代码。这是AppVeyor 日志

(如果这个 SO 问题听起来很熟悉,我将向Travis-CI 提出一个类似的问题。)

4

1 回答 1

6

是的,这里的解决方案类似于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

与模板不同的重要部分是:

 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

于 2016-09-15T04:29:11.330 回答