Travis的构建怎么可能在最新的推送中失败但是通过了Pull Request?
On this Gist,您可以找到Travis提供的npm run build
命令的失败和传递输出日志。您还可以找到Travis的配置,如下所示:
install:
- npm install
- npm install -g angular-cli
language: node_js
script:
- gulp html
- gulp scss
- gulp ts
- gulp node
- npm run build
node_js:
- "6.9"
cache:
directories:
- node_modules
- bower_components
答案 0 :(得分:9)
此存储库在Travis CI中配置为在两个环境(名为pr
和push
)上运行测试。
拉取请求(pr)版本将命名为continuous-integration/travis-ci/pr
,并来自the docs:
我们测试源和上游分支之间的合并,而不是测试拉出请求来自分支的提交。要仅构建推送事件,您可以从存储库设置中禁用Build on Pull Requests。
推送版本将命名为continuous-integration/travis-ci/push
且来自the docs
Travis只对您推送 AFTER 将存储库添加到Travis的提交进行构建。
由于您的分支合并到基本分支传递了continuous-integration/travis-ci/push
的测试,更新您的分支以包含来自基本分支的最新提交将使您的分支通过测试。从上图中,GitHub UI应该允许您从Pull Request页面更新分支。
通过分支保护,在合并到基本分支成功时,分支不太可能无法通过测试。
请确保您确认破坏的内容实际上是固定的。也就是说,有人"修复了构建"通过禁用基本分支中的失败测试?作为一个谨慎的人,我会挑选修复你的分支来验证问题是否得到解决。
答案 1 :(得分:3)
通过@osowskit的评论,我找到了问题的解决方案。他/她说:
PR会将您的更改合并到基本分支中并运行CI测试。 Push将在当前分支上运行CI测试。将基本分支合并到分支中可能会解决分支上的构建测试问题。