在.travis.yml
配置文件中,before_install
,install
,before_script
和script
选项之间的实际区别是什么?
我没有找到解释这些选项之间差异的文档。
答案 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_install
,install
,before_script
和script
选项之间的实际差异
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