有没有办法使GitHub CI建立PR的测试合并,而不是PR分支的负责人?

时间:2019-08-17 09:59:58

标签: git github github-actions github-ci

创建PR时,GitHub CI(通过actions/checkout操作)检出PR分支的头。例如,如果PR分支的头具有SHA cc87b2733dfbe579a4451b2359191a6c512207c3,我会在GitHub CI日志中看到它:

git checkout --progress --force cc87b2733dfbe579a4451b2359191a6c512207c3

其他CI系统则检查PR的 test merge 。例如,如果PR号是123,则在Travis CI日志中,我会看到:

git fetch origin +refs/pull/123/merge
git checkout -qf FETCH_HEAD

在Appveyor日志中,我看到:

git fetch -q origin +refs/pull/123/merge
git checkout -qf FETCH_HEAD

有没有办法使GitHub CI构建PR的测试合并,而不是PR分支的负责人?

1 个答案:

答案 0 :(得分:0)

根据https://github.com/actions/checkout/issues/15

GitHub文档具有误导性:

  

如果您打算使用pull_request事件来触发CI测试,我们建议您将工作流配置设置为侦听push事件。

我发现以下功能完全可以满足我的需求:

on:
  push:
  - master
  - release-*
  pull_request:

我担心使用pull_request事件会触发太多构建,因为根据docs

  

在分配拉取请求,未分配,标记,未标记,打开,编辑,关闭,重新打开,同步,ready_for_review,锁定,解锁或请求或删除拉取请求时触发。

但是,似乎GH操作足够聪明,不会触发已生成的提交的重建。