将 github 合并队列与自托管 buildbot CI 结合使用

问题描述 投票:0回答:1

多年来我们一直在使用 bors-ng 进行合并队列,现在我们想迁移到 Github 合并队列。

我发现 GitHub 的文档很难理解,但据我所知,我需要执行以下操作:

1:设置buildbot来构建合并队列分支:

例如

c['schedulers'].append(schedulers.SingleBranchScheduler(
                       name="simple-ghmq-branches-scheduler",
                       change_filter=util.ChangeFilter(
                           branch_re=re.compile("^gh-readonly-queue/"),
                            repository=REPOS,
                        ),
                        builderNames=["buildbot-build-script"],
                        treeStableTimer=TREE_STABLE_TIMEOUT))

这与我们的工作 bors-ng 设置非常相似(只是

branch_re=...
branch=['trying', 'staging']

2:在 GH 中打开合并队列

main
分支添加分支保护规则并开启合并队列:

3:将 buildbot 添加为基础分支的必需检查

您只能添加最近通知 github 的必需检查。我只是写了一个小 python 脚本来做到这一点。

之后,在

main
分支保护规则中,将buildbot设置为必填检查。

4:将工作流程添加到主分支。

根据这些文档

例如在

.github/workflows/ci.yml

on:
  pull_request:
  merge_group:

5:提高 PR

单击“准备就绪后合并”按钮。

但问题是,github 从来没有创建分支供 CI 拾取,所以它就永远坐在那里。

谁能看出问题出在哪里吗?

编辑:还尝试从

main
中删除所需的状态检查并将其添加到
gh-readonly-queue/*
的新分支保护规则中。在这种设置下,githubdid创建了一个分支,并且buildbot确实构建了它。 Buildbot报失败,但是github还是合并了分支...我没明白。

github continuous-integration buildbot
1个回答
0
投票

这里的问题是 github 目前需要在单击合并按钮后引发 PR 时运行相同的 CI 检查集。

我们通过让 CI 系统针对所有“push”和“pull_request”事件运行来解决这个问题,但对于后者,让 CI 立即返回成功,而不实际运行任何 CI 测试。

我真的希望 github 将来能够改进这一点。

© www.soinside.com 2019 - 2024. All rights reserved.