我成功创建了一个示例.travis.yml文件并构建了传递。但是,它有点慢。主要原因是作曲家安装,最多需要40秒。
由于我对Travis CI的经验是2天,我需要有经验的人告诉我在Travis环境中使用composer install
时更好的做法是什么?我应该在什么街区调用它,命令本身应该是什么?
注意:我使用Symfony项目,所以如果有这个框架的特定内容,请告诉我。
我阅读了一些博客文章,并在一些开源项目中浏览了示例文件,最终让自己感到困惑。一些用于before_script:
和一些install:
等。还有一些使用composer install
,composer install --prefer-source --no-interaction --dev
,travis_retry composer install --ignore-platform-reqs --no-interaction --prefer-source
等。我的目标是加快构建时间。
我自己的.travis.yml。
language: php
php:
- 5.6
env:
global:
- SOURCE_DIR=src
install:
- sudo apt-get update > /dev/null
- sudo apt-get install apache2 libapache2-mod-fastcgi > /dev/null
before_script:
- ...
- ...
- composer self-update
- composer install
- ...
- ...
script:
- bin/phpspec run --no-ansi --format=dot
- bin/behat --profile=default -f progress
- ...
- ...
答案 0 :(得分:2)
composer install
属于IMO的哪个部分没有正确的答案。使用对你有意义的东西。我会把它放在install
。
如果命令容易因网络问题而失败,那么使用travis_retry
作为前缀也是一个好主意。例如。它将重试相同的命令默认数量为3次。如果在所有重试尝试后,该命令仅被视为失败,则包装的命令仍然不是exit 0
。
至于加速你的构建,我不打算从构建时间中消除40秒。也就是说,您可以查看缓存作曲家安装目录。这将在构建器完成后保存该目录的tarball,并尝试在下一个构建开始时从网络存储中获取它。这样只需要new.changed依赖项来安装。由于该存档存在于网络存储而不是容器内部,因此这可能不会给您任何实际的加速。 Docs for caching