【问题标题】:How to achieve gated check-in for GitLab Repository?如何实现 GitLab 存储库的门控签入?
【发布时间】:2017-11-14 06:13:20
【问题描述】:

我的要求是,每当开发人员尝试签入现有 GitLab 存储库时,在签入存储库之前,构建应该触发(Jenkins 构建)并且 Junit 测试用例应该在新签入时运行,如果通过则应该继续前进,将允许开发人员在主存储库中进行签入。

我不确定,但是 pre-hook 提交是否可以达到这个要求?

【问题讨论】:

  • 发帖提示:请不要将您的电子邮件地址添加到帖子中 - 如果您愿意,请将其放入您的个人资料中。读者更愿意在公共场合提供帮助,以便未来的读者可以从对话中受益。此外,最好不要期望您可以输入完整的解决方案 - 读者很乐意提供建议和帮助,但我们希望发布者能够接受这种帮助并将其与自己的努力相结合。希望有帮助!

标签: gitlab pre-commit-hook gated-checkin


【解决方案1】:

虽然您可以使用 pre-commit 挂钩来实现这一点,但更常见的是使用服务器端的 post-commit 挂钩。

您可以通过操作基于分支的工作流程来实现这一点,有多种选择 - 我建议您通读 guidance by Atlassian

开发人员将从“主”分支(通常是主分支,但也可以是“开发”分支)创建分支,然后在该分支上开发代码。然后他们将推送他们的分支并提交到远程存储库(GitLab)。当准备好合并到主分支时,您的开发人员可以向主分支打开合并请求。

在 GitLab 上,您可以设置一个 webhook 以在发生推送事件时触发 Jenkins 构建。我会推荐this guide to guide you through it

在 GitLab 项目设置中,您可以在允许合并请求之前要求通过构建。


此外,您对 Git 的理解似乎不正确 - 签入不是 Git 中使用的术语。请查看Git 文档。在 Git 中,开发人员针对存储库的本地副本创建提交,然后将它们推送到远程存储库(GitLab/GitHub 等)。各种集中式版本控制系统中使用的“签入”没有直接等价物,例如SVN。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-31
    • 2019-09-30
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    相关资源
    最近更新 更多