CircleCI测试环境目录位置及仓库文件操作问题咨询
CircleCI 目录定位与文件夹操作问题
问题场景
在CircleCI测试配置中执行以下命令可正常运行:
- run: ./vendor/bin/phpunit Test/Unit
由此判断当前处于包的根目录,但执行原Travis CI遗留的命令时失败(提示找不到travis文件夹):
- run: cp ../travis/travis.composer.json drupal/composer.json
需要明确当前目录位置、仓库内文件夹操作方法,以完成集成测试(创建新文件夹、复制composer.json并安装依赖)。
解决方案
1. 当前目录确认
你确实处于仓库根目录。./vendor/bin/phpunit能正常执行,说明当前目录下存在Composer生成的vendor目录,Test/Unit也是根目录下的测试目录,符合仓库根目录的特征。
../travis/...命令失败的核心原因是:Travis CI与CircleCI的仓库克隆路径逻辑不同——Travis CI会将仓库克隆到上级目录的子文件夹中,而CircleCI默认直接将仓库克隆到/home/circleci/project,且所有run命令默认在该仓库根目录执行,上级目录不存在你的travis文件夹。这个travis文件夹是你仓库自身的目录,而非上级目录的。
2. 仓库内文件夹操作方法
- 修正复制命令:直接使用仓库根目录的相对路径访问
travis文件夹,去掉../前缀:- run: cp travis/travis.composer.json drupal/composer.json - 创建新文件夹并完成集成测试步骤:
# 创建嵌套的集成测试目录 - run: mkdir -p tests/integration/build # 复制composer.json到目标目录 - run: cp travis/travis.composer.json tests/integration/build/composer.json # 进入目标目录并安装依赖 - run: cd tests/integration/build && composer install - 排查目录结构(可选):如果仍有路径问题,可添加命令查看当前路径与目录内容,快速定位问题:
- run: pwd && ls -la && ls -la ../
内容的提问来源于stack exchange,提问作者joachim
相关产品推荐
相关产品推荐

