我有一个包含多个子目录的项目,我想依次检查。实际上,这些目录是一个有点过时的分支版本,由于各种原因我必须保留。
在我的主文件夹中,我有子目录patch
和pkg
,并想要同时检查两者。我尝试使用以下脚本来实现此目的。
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
并且还有行
- ps: echo %TEST_DIR%
- ps: cd %TEST_DIR%
build_script
之前的- travis-tool.sh install_deps
中的。这些都不起作用。
当我使用echo %TEST_DIR%
时,回声%TEST_DIR%
和echo $TEST_DIR
没有任何回应,即字符串似乎是空的。有线索吗?
在Travis-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
就像魅力一样。
答案 0 :(得分:2)
在discussions支持AppVeyor后,我找到了解决问题的有效方法:
environment:
matrix:
- TEST_DIR: patch
- TEST_DIR: pkg
before_build:
- cd %TEST_DIR%
所以,我只需要删除控制台类型(ps
或cmd
)就可以更改目录。
就我而言,构建和检查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提供的脚本一起使用。