{before _,} {install,script} .travis.yml选项之间有什么区别?

时间:2015-12-20 01:01:48

标签: travis-ci

.travis.yml配置文件中,before_installinstallbefore_scriptscript选项之间的实际区别是什么?

我没有找到解释这些选项之间差异的文档。

2 个答案:

答案 0 :(得分:16)

当出现问题时,差异在于工作状态。

Git 2.17(2018年第二季度)在commit 3c93b82(2018年1月8日)SZEDER Gábor (szeder)中说明了这一点。 (由Junio C Hamano -- gitster --合并于commit c710d18,2018年3月8日)

这说明了before_installinstallbefore_scriptscript选项之间的实际差异

  

travis-ci:在“script”阶段构建Git

     

自从我们开始构建和测试Trait CI上的Git(522354d:添加Travis CI支持,2015-11-27,Git v2.7.0-rc0)之后,我们在   “before_script”阶段并在“script”阶段运行测试套件   (在后来引入的32位Linux和Windows构建作业中除外,   我们在“script”阶段建立的地方。)

     

相反,Travis CI的做法是建立和测试   'script'阶段;确实是Travis CI的默认构建命令   C / C ++项目的“script”阶段是:

./configure && make && make test
     

Travis CI之所以这样做,以及为什么它会更好   比我们的方法在于如何不成功的构建工作   分类。在构建作业出现问题后,其状态可以   是:

     
      
  • '失败',如果“script”阶段的命令返回错误。
      这由Travis CI网络界面上的红色“X”表示。

  •   
  • '错误',如果“before_install”,“install”中的命令或   “before_script”阶段返回错误,或者超出了构建作业   时间限制   这显示为红色'!'在网络界面上。

  •   
     

这使得人们更容易看到Travis CI网站   界面以及用于查询Travis CI API的自动化工具   决定何时不成功的构建是我们的责任要求   人为关注,即由于编译器构建作业“失败”   错误或测试失败,以及它是由超出我们的东西引起的   控制并可以通过重新启动构建作业来修复,例如当一个   构建作业'错误',因为无法安装依赖项   临时网络错误或因为OSX构建作业超出了它   时间限制。

     

在“before_script”阶段构建Git的缺点就是那个   必须检查所有“错误”构建作业的跟踪日志,以便查看   是什么导致了错误,因为它可能是由编译器引起的   错误。
  这需要在Web界面上进行额外的点击和页面加载,以及自动化工具中的额外复杂性和API请求。

     

因此,将Git从'before_script'阶段转移到。{   'script'阶段,也相应地更新脚本的名称   “ci/run-builds.sh”现在基本上变空了,将其删除   我们的一些构建作业配置覆盖了我们的默认“before_script”,什么都不做;通过此更改,我们的默认“before_script”将无效   任何事情,所以也要删除那些重写指令。

答案 1 :(得分:0)

构建生命周期

基于Travis CI的构建由两个步骤组成:

REPLICATION:安装所需的所有依赖项 install:运行构建脚本 您可以在安装步骤(script之前,脚本步骤之前(before_install之前(before_script之后)运行自定义命令。

after_script步骤中,您可以安装项目所需的其他依赖项,例如Ubuntu软件包或自定义服务。

了解更多here