0

Appveyor の R パッケージでいくつかの SQL 統合テストを実行しようとしています。目的のデータベースをセットアップするために mdf ファイルを使用していますが、R パッケージに mdf ファイルがあると問題が発生します。関連する手順は次のとおりです。

1) ビルドする前に、PowerShell スクリプトを呼び出して、パッケージ内の mdf ファイルを使用してデータベースを作成します。

  • このステップはエラーなしで実行されます

2) yml ファイルは R テストを実行travis-tool.sh run_testsし、R プロジェクト ファイルをc:\projects\HCRToolsビルド ディレクトリにコピーしようとします。C:\Users\appveyor\AppData\Local\Temp

  • mdf が SQL Server に関連付けられており、コピーできないため、この手順は失敗します。

    「file.copy(pkgname, Tdir, recursive = TRUE) の警告: .\hcrtools\inst\CIDatabase\SAM_log.ldf を C:\Users\appveyor\AppData\Local\Temp\1\RtmpCq659a\Rbuild92c6989d34\hcrtools にコピーするときに問題が発生しました\inst\CIDatabase\SAM_log.ldf: アクセス許可が拒否されましたエラー ビルド ディレクトリへのコピーに失敗しました"

Rパッケージに含まれていないmdfアーティファクトをアップロードする際の助けをいただければ幸いです! これを機能させることができませんでした。

yml ファイル:

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

services:
  - mssql2012sp1

build_script:
  - ps: iex .\inst\CIDatabase\CIBuild_DBCreate.ps1 #<-- Create DB (w/ no error)!
  - Rscript -e "source('http://bioconductor.org/biocLite.R')" -e "chooseCRANmirror(ind=81)"
  - travis-tool.sh install_deps

test_script:
  - travis-tool.sh run_tests #<-- mdf copy error occurs!

on_failure:
  - 7z a failure.zip *.Rcheck\*
  - appveyor PushArtifact failure.zip

environment:
  global:
    WARNINGS_ARE_ERRORS: 0
    _R_CHECK_FORCE_SUGGESTS_: 1
    R_ARCH: x64

  matrix:
    - R_VERSION: release

アーティファクトをアップロードしてデータベースを作成するための PowerShell ファイル:

#-- Push artifacts up
Push-AppveyorArtifact inst/CIDatabase/SAM.mdf
Push-AppveyorArtifact inst/CIDatabase/SAM_log.ldf

#-- Use mdf/ldf to create SAM db
$mdfFile = "c:\projects\HCRTools\inst\CIDatabase\SAM.mdf"
$ldfFile = "c:\projects\HCRTools\inst\CIDatabase\SAM_log.ldf"

sqlcmd -S "(local)\SQL2012SP1" -Q "CREATE DATABASE [SAM] ON (FILENAME = '$mdfFile'), (FILENAME = '$ldfFile') for ATTACH"

注: https://github.com/hadley/devtoolsを R パッケージ appveyor の例として使用しています。方向性をありがとう!

4

1 に答える 1