在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?
  • 有什么问题
  • Composer更新没有PHP环境检查
  • php和与Travis CI
  • 的连续集成
  • 所以在

我自己的.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
  - ...
  - ...

没有一个正确的答案composer install属于IMO。使用对您有意义的东西。我会把它放在 install中。

如果由于网络问题而容易失败,将其前缀在travis_retry上也是一个好主意。例如。它将重试同一命令默认号为3次。只有在所有重试尝试中,包装命令仍然没有 exit 0,命令才被认为是故障。

为了加速您的构建,我不会为消除40多岁的构建时间而费力。也就是说,您可以查看缓存作曲家安装目录。这将在构建器完成后节省DIR的TARBALL,并尝试在下一个构建开始时从网络存储中获取它。这样,只需安装新的。但是,由于该档案存储在网络存储上,而不是在容器内部,因此可能不会给您任何实际的加速。缓存的文档

最新更新