我的要求是,每当开发人员尝试签入现有的 GitLab 存储库时,然后在签入存储库之前,构建应该触发(Jenkins 构建)并且 Junit 测试用例应该在新的签入时运行,如果通过,那么它应该继续前进并且将允许开发人员在主存储库中进行签入。
我不确定,但是 pre-hook 提交可以达到这个要求吗?
我的要求是,每当开发人员尝试签入现有的 GitLab 存储库时,然后在签入存储库之前,构建应该触发(Jenkins 构建)并且 Junit 测试用例应该在新的签入时运行,如果通过,那么它应该继续前进并且将允许开发人员在主存储库中进行签入。
我不确定,但是 pre-hook 提交可以达到这个要求吗?
虽然您可以使用 pre-commit 钩子来实现这一点,但更常见的是使用服务器端的 post-commit 钩子来实现。
您可以通过操作基于分支的工作流来实现这一点,有多种选择 - 我建议通读Atlassian 的本指南。
开发人员将从“主”分支创建分支(通常是主分支,但也可以是“开发”分支,例如用于发布版本),然后在该分支上开发代码。然后他们将推送他们的分支并提交到远程存储库(GitLab)。当准备好合并到主分支时,您的开发人员可以在主分支上打开合并请求。
在 GitLab 上,您可以设置一个 webhook 以在发生推送事件时触发 Jenkins 构建。我会推荐本指南来指导您完成它。
在 GitLab 项目设置中,您可以在允许合并请求之前要求通过构建。
此外,您对 Git 的理解似乎不正确——签入不是 Git 中使用的术语。请查看Git文档。在 Git 中,开发人员针对存储库的本地副本创建提交,然后将它们推送到远程存储库(GitLab/GitHub 等)。在各种集中式版本控制系统(例如 SVN)中没有直接等效的“签入”。