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

Symfony 在Travis CI环境中处理composer install命令以加快构建时间,symfony,composer-php,travis-ci,Symfony,Composer Php,Travis Ci,我成功地创建了一个example.travis.yml文件,构建通过了。但是,它有点慢。主要原因是composer安装,它最多需要40秒 由于我使用Travis CI已有2天的经验,我需要有经验的人告诉我在Travis环境中使用composer install的最佳实践是什么?我应该在什么块下调用它,命令本身应该是什么 注意:我使用Symfony项目,因此如果有特定于此框架的内容,请告诉我 我读了一些博客文章,浏览了一些开源项目中的示例文件,最后弄糊涂了。一些使用之前的脚本:和一些安装:等。还有

我成功地创建了一个example.travis.yml文件,构建通过了。但是,它有点慢。主要原因是composer安装,它最多需要40秒

由于我使用Travis CI已有2天的经验,我需要有经验的人告诉我在Travis环境中使用
composer install
的最佳实践是什么?我应该在什么块下调用它,命令本身应该是什么

注意:我使用Symfony项目,因此如果有特定于此框架的内容,请告诉我

我读了一些博客文章,浏览了一些开源项目中的示例文件,最后弄糊涂了。一些使用
之前的脚本:
和一些
安装:
等。还有一些使用
编写器安装
编写器安装--首选源代码--无交互--开发
travis\u重试编写器安装--忽略平台需求--无交互--首选源代码
等等。我的目标是加快构建时间

  • 诸如此类
我自己的。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安装属于IMO的哪个部分,没有一个正确答案。请使用对您有意义的内容。我会把它放在
安装中

如果命令由于网络问题而容易失败,那么在它前面加上
travis\u retry
也是一个好主意。例如它将以默认次数重试同一命令3次。只有在所有重试尝试之后,包装的命令仍然没有退出0时,该命令才会被视为失败


至于加快你的构建速度,我不会费心从构建时间中去掉40秒。也就是说,您可以看看如何缓存composer安装目录。这将在构建器完成后保存该目录的tarball,并在下一个构建开始时尝试从网络存储中获取该目录。这样,只需要安装新的.changed依赖项。但是,由于该存档存在于网络存储中,而不是容器中,因此这可能不会给您带来任何实际的加速

看来我必须
sudo:false
才能使用缓存功能,但我对一些命令使用
sudo
,所以据我所知,缓存composer目录(
$HOME/.composer/cache
)似乎不是我的解决方案。此外,我经常更改composer.json&lock文件,以便在Travis从旧缓存中读取时,我的构建会中断。构建依赖于新的包等。文档可能不再是最新的了。在启用缓存后,我现在的构建速度提高了30%。谢谢你的链接和信息。