2015-10-29 44 views
1

我有一个项目有多个子目录,我都要依次检查。实际上,这些目录有点过时,因为各种原因我必须保留这些版本。使用AppVeyor检查多个子目录

在我的主文件夹中,我有子目录patchpkg,并且想同时检查两者。我试图用下面的脚本来达到这个目的。

environment: 
    matrix: 
    - TEST_DIR: patch/ 
    - TEST_DIR: pkg/ 

before_build: 
    - ps: echo %TEST_DIR% 
    - ps: cd %TEST_DIR% 

build_script: 
    - travis-tool.sh install_deps 

我也用$TEST_DIR,也只是- travis-tool.sh install_deps之前所拥有的线

- ps: echo %TEST_DIR% 
    - ps: cd %TEST_DIR% 

build_script。这一切都没有工作。

当我使用echo %TEST_DIR%它与回波%TEST_DIR%echo $TEST_DIR没有任何回应,即字符串似乎是空的。任何线索?


在特拉维斯-CI,我可以使用

## test multiple directories 
## (see https://lord.io/blog/2014/travis-multiple-subdirs/) 
env: 
- TEST_DIR=patch/ 
- TEST_DIR=pkg/ 

language: r 
sudo: required 

## change directory before installation 
## as R packages are not available elsewise 
before_install: 
    - cd $TEST_DIR 

它就像一个魅力。

回答

2

discussions与AppVeyor支持后,我发现该问题的有效的解决方案:

environment: 
    matrix: 
    - TEST_DIR: patch 
    - TEST_DIR: pkg 

before_build: 
    - cd %TEST_DIR% 

所以,我只是需要删除该控制台类型(pscmd),以使人们有可能更改目录。

在我的情况下,建立和检查一个R项目,我还需要添加一些行来复制脚本等到我的before_build。总之,before_build因此应该是这样的:

before_build: 
    - cp ..\travis-tool.sh .\travis-tool.sh 
    - cp travis-tool.sh.cmd %TEST_DIR%\travis-tool.sh.cmd 
    - cd %TEST_DIR% 
    - bash -c "echo '^travis-tool\.sh\.cmd$' >> .Rbuildignore" 

现在,AppVeyor可以作为通常由GitHub的项目R+AppVeyor提供的脚本。