将.NET项目与Jenkins和SVN集成的最佳方法是什么(我不知道现在是否有机会切换到git)并且能够在构建之后和生产之前检查代码。
我想要这样的事情:
6a上。不是一切都好。 6B。 Jenkins向开发人员发送通知说他的提交破坏了构建,我们回到第2步。
我知道如何执行第1-6步。或多或少。我知道我可以使用MSBuild构建所有内容,所以这应该不难,但我不确切知道如何配置步骤6-9,
GIT:
我认为使用git会更容易。我看到在构建后的操作中有Git Publisher,我可以将更改推送到分支 - “review-branch”或类似的东西,并向审阅者发送通知。他们将拉出存储库,一切都会很棒。嗯也许不是推动审查分支,詹金斯应该创建对该分支的拉取请求。但正如我所说,这将是git的场景。我在这里写了,因为对我来说git在这里是更好的选择,但也许不可能。我只是想知道,如果我们谈论git,我是不是错过了什么。
SVN:
我不知道该怎么做。 Jenkins是否有内置的东西来处理第二个SVN存储库的“推送”?如何将代码提交到存储库B?
修改: 什么是最好的方法? - (GIT)Jenkins创建拉取请求 - 如果可能的话 - (GIT)Jenkins推动第二次审核 - 分支并通过电子邮件发送通知或在某些问题跟踪器上创建一些门票(Redmine / Jira) - (SVN)Jenkins承诺审查存储库并发送电子邮件或创建票证。 - 或者最好将所有内容与ReviewBoard / Gerrit或类似内容集成。现在我从来没有使用过这样的软件,而且我读到Gerrit有点麻烦。
答案 0 :(得分:4)
你需要记住一些事情:
在版本控制系统中,一切都是可逆的
这意味着您可以对已提交的代码进行代码审查,并修复新提交中的任何问题。实际上,这实际上与Subversion有关,因为Subversion为您提供了一个包含所有代码更改的良好修订版本号。每个人都以这种方式在同一页面上。 (“我们正在审核修订版23,340”)。大多数代码评论都在寻找忘记检查空指针等问题。如果代码非常糟糕,Subversion可以很容易地完全扭转变化。
詹金斯会立即告诉你构建是否糟糕,我们的政策是开发人员有10分钟时间来解决问题,或者退出他们的更改。 (90%的时间,他们退出了他们的变化)。我们有系统设置,因此开发人员和Jenkins都使用相同的构建机制。这允许开发人员在提交更改之前测试构建并运行单元测试。
这就是大多数版本控制系统没有搁置的原因,并且您没有看到三组存储库和大多数地方。这不是你的公寓。你的妈妈不会来看看你的代码历史。它不一定要整洁。让它反映正在发生的事情。
简化。删除最后三个步骤。您的代码是否在同一存储库中检查并修复代码。这意味着必须维护的存储库减少66%。硬件减少66%。而且,
您真正需要的是跟踪代码审核的方法。您可以使用类似Crucible的内容,但也可以使用Jenkins。有两种方法可以使用Jenkins跟踪更改:
Promoted Builds Simple Plugin ......好......很简单。您可以在Jenkins配置页面中指定所有各种促销级别,这就是所有构建将使用的内容。每个单独的构建只允许一个促销级别,并且都是手动完成的。
标准Promoted Build Plugin是一项更多的工作,但它也更强大。它允许每个Jenkins作业都有自己的构建升级方案。促销可以是手动的,也可以是自动的。当构建获得提升时,它可以产生其他操作,例如发送电子邮件,部署到服务器等。此外,您可以显示多个促销。想象一下以下促销级别:
答案 1 :(得分:0)
[回答“可以做到的”部分]
是的,詹金斯可以做你所描述的。我已经设置了使用SVN为存储库使用所有需要的部分的作业(但不是您的程序)。我不确定GIT。
- Jenkins开始进行单元测试。
醇>
添加构建步骤以执行Windows批处理文件。
- Jenkins提交对存储库B的更改(审核存储库)
醇>
如果使用SVN,请查看Jenkins SVN Publisher Plugin。对于GIT来说,它似乎可以用Git Plugin,但有一点警告:“安装插件本身就像一个魅力,但配置系统在Windows下正常工作可能是一个棘手的问题。看到你可能遇到的问题。“