当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《{before_,}{install,script}.travis.yml选项之间有什么区别?》经验,为你挑选了2个好方法。

内部.travis.yml配置文件之间有什么实际差别before_install,install,before_scriptscript选择?

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



1> localheinz..:

您不需要使用这些部分,但如果您这样做,您就会传达您正在做的事情的意图:

before_install:
  # execute all of the commands which need to be executed 
  # before installing dependencies
  - composer self-update
  - composer validate

install:
  # install all of the dependencies you need here
  - composer install --prefer-dist

before_script:
  # execute all of the commands which need to be executed 
  # before running actual tests
  - mysql -u root -e 'CREATE DATABASE test'
  - bin/doctrine-migrations migrations:migrate

script:
  # execute all of the commands which 
  # should make the build pass or fail
  - vendor/bin/phpunit
  - vendor/bin/php-cs-fixer fix --verbose --diff --dry-run

例如,参见https://github.com/localheinz/composer-normalize/blob/0.8.0/.travis.yml.


我仍然不明白为什么在https://docs.travis-ci.com/user/docker/中,将docker build命令放置在before_install步骤中。它不应该在“安装”步骤中吗?

2> VonC..:

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

Git的2.17(Q2 2018)说明在提交3c93b82(2018年1月8日),由SZEDER的Gabor( )szeder.
(由Junio C gitsterHamano合并- -在提交c710d18,2018年3月8日)

这说明之间的实际差别before_install,install,before_scriptscript选项

travis-ci:在' script'阶段构建Git

自从我们开始建设和特拉维斯CI测试的Git(522354d:添加特拉维斯CI的支持,2015年11月27日,Git的V2.7.0-RC0),我们在"构建混帐before_script"阶段和运行测试套件" script"阶段(除了后来引入的32位Linux和Windows构建作业,我们在' script'阶段' 构建).

相反,Travis CI的做法是在' script'阶段建立和测试; 事实上Travis CI对于scriptC/C++项目阶段的默认构建命令是:

./configure && make && make test

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

'失败',如果' script'阶段的命令返回错误.
这由Travis CI Web界面上的红色"X"表示.

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

这使得查看Travis CI Web界面的人和查询Travis CI API的自动化工具更容易确定何时不成功的构建是我们的责任,需要人工关注,即由于编译器构建作业"失败"错误或测试失败,当它由我们无法控制的东西引起,并且可能通过重新启动构建作业来修复,例如,当构建作业"错误"因为由于临时网络错误而无法安装依赖项或因为OSX构建作业超出了其时间限制.

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

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

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有