创建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分支的负责人?
答案 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操作足够聪明,不会触发已生成的提交的重建。