我对GitHub Actions感到非常兴奋。
我现在使用Travis-CI和AppVeyor,它们具有“ PR”(拉请求)构建,可以构建代码,就像合并了拉请求一样。
我想使用GitHub Actions进行持续集成,但是GitHub Actions似乎仅支持构建推送的提交,而不是合并的结果。如何达到我想要的效果?
rmu*_*unn 12
根据https://github.com/actions/checkout/issues/15#issuecomment-524093065和https://github.com/actions/checkout/issues/15#issuecomment-524107344,如果您将工作流程设置为触发该pull_request事件而不是push事件时,GITHUB_SHA将是合并提交,这样checkout的行动将检查出的合并,然后你就可以建立和运行单元测试的结果。
它也在此处正式记录:
GITHUB_SHA=GITHUB_REF分支上的最后一次合并提交
GITHUB_REF= PR 合并分支refs/pull/:prNumber/merge
免责声明:我还没有进入测试版,所以我无法自己验证这些信息;我可以传递其他人所说的对他们有用的东西。
我现在已经进入测试版,所以我可以确认这有效。我在我的测试仓库中运行了以下工作流程的构建:
name: Build PR
on: [pull_request]
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
dotnet: [2.2.402, 3.0.100-rc1-014190]
runs-on: ${{ matrix.os }}
steps:
# ... trimmed ...
- name: Dump GitHub context
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
if: runner.os != 'Windows'
# ... trimmed ...
Run Code Online (Sandbox Code Playgroud)
这是该工作流运行的构建日志。公关在这里;该 PR 的第一次提交是提交 ID ec81c6f:
当我跑到git fetch origin pull/10/merge:merge-pr-10去取合并提交,提交我得到f1ea865的一个合并ec81c6f到44a09bc(这是最新的承诺我master在那个PR创建时分支)。并注意实际构建的 SHA:
因此,只需将其on: [pull_request]用作我的工作流程的触发事件,它就完成了我想要的。如果您查看PR 的历史记录,您会发现我尝试了几件事来查看触发新构建的原因:添加评论、关闭存储库、打开存储库……这是我发现的内容。
这正如我所料。
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |