在Travis CI环境中处理composer install命令以加快构建时间

时间:2016-06-16 12:39:04

标签: symfony composer-php travis-ci

我成功创建了一个示例.travis.yml文件并构建了传递。但是,它有点慢。主要原因是作曲家安装,最多需要40秒。

由于我对Travis CI的经验是2天,我需要有经验的人告诉我在Travis环境中使用composer install时更好的做法是什么?我应该在什么街区调用它,命令本身应该是什么?

注意:我使用Symfony项目,所以如果有这个框架的特定内容,请告诉我。

我阅读了一些博客文章,并在一些开源项目中浏览了示例文件,最终让自己感到困惑。一些用于before_script:和一些install:等。还有一些使用composer installcomposer install --prefer-source --no-interaction --devtravis_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
  - ...
  - ...

1 个答案:

答案 0 :(得分:2)

composer install属于IMO的哪个部分没有正确的答案。使用对你有意义的东西。我会把它放在install

如果命令容易因网络问题而失败,那么使用travis_retry作为前缀也是一个好主意。例如。它将重试相同的命令默认数量为3次。如果在所有重试尝试后,该命令仅被视为失败,则包装的命令仍然不是exit 0

至于加速你的构建,我不打算从构建时间中消除40秒。也就是说,您可以查看缓存作曲家安装目录。这将在构建器完成后保存该目录的tarball,并尝试在下一个构建开始时从网络存储中获取它。这样只需要new.changed依赖项来安装。由于该存档存在于网络存储而不是容器内部,因此这可能不会给您任何实际的加速。 Docs for caching