首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins + SVN + .NET项目+代码评审。最好的办法?

Jenkins + SVN + .NET项目+代码评审。最好的办法?
EN

Stack Overflow用户
提问于 2012-11-29 21:32:22
回答 2查看 2K关注 0票数 5

将.NET项目与Jenkins和SVN集成的最佳方法是什么(我不知道现在是否有机会切换到git ),并能够在构建之后和生产之前检查代码。

我想要这样的东西:

  1. 开发人员签出存储库。
  2. 开发人员实现了一些东西。
  3. 开发人员提交对存储库A (SVN)的更改
  4. Jenkins监视存储库A (SVN)
  5. 詹金斯开始建房子了。
  6. 詹金斯开始单元测试。
  7. 一切都很好。
  8. Jenkins提交了对存储库B的更改。
  9. QA的人检查代码。
  10. QA人员提交对存储库C(生产)的更改

6a.不是一切都好。6b。Jenkins向开发人员发出通知,他的提交破坏了构建,我们回到第2步。

我知道如何做第1-6步。或多或少。我知道我可以用MSBuild构建所有东西,所以这并不难,但我不知道如何配置步骤6-9,

GIT:

我觉得用吉特会容易得多。我看到在构建后的操作中有Git,我可以将更改推送到分支--“评审分支”或类似的东西,并向审阅者发送通知。他们会提取存储库,一切都会很好。嗯,也许詹金斯应该创建对该分支的拉请求,而不是推到审查分支。但就像我说的那样,这将是吉特的场景。我是在这里写的,因为对我来说,git是更好的选择,但可能不可能。我只想知道如果我们谈的是git,我是不是错过了什么。

SVN:

我不知道该怎么做。Jenkins有什么内置的东西来处理第二个SVN存储库的“推”吗?如何将代码提交到存储库B?

回顾:最好的方法是什么?- (GIT) Jenkins创建拉请求--如果可能的话-- Jenkins推送到第二次审查分支,并通过电子邮件发送通知或在某个问题跟踪器(Redmine/Jira)上创建一些票证- (SVN) Jenkins承诺审查存储库并发送电子邮件或创建票证。-也许最好将所有内容与ReviewBoard/Gerrit或其他类似的东西集成在一起。现在,我从来没有使用过这样的软件,我读到Gerrit有点麻烦。

EN

回答 2

Stack Overflow用户

发布于 2012-11-30 18:29:51

有件事你需要记住:

在版本控制系统中,一切都是可逆的。

这意味着您可以对已提交的代码进行代码检查,并修复新提交中的任何问题。事实上,这实际上与Subversion有关,因为Subversion为您提供了一个包含所有代码更改的很好的修订编号。每个人都是如此。(“我们正在审查修订本23 340版”)。大多数代码评审都在寻找一些东西,比如忘记检查空指针,等等。如果代码非常糟糕,Subversion可以轻松地完全逆转更改。

Jenkins会立即告诉您构建是否不好,我们的政策是,开发人员有10分钟来解决问题,或者放弃他们的更改。(90%的时间,他们放弃了他们的改变)。我们有我们的系统设置,所以开发人员和Jenkins都使用相同的构建机制。这允许开发人员在提交更改之前测试构建并运行单元测试。

这就是为什么大多数版本控制系统没有搁置的原因,而且您看不到三组存储库和大多数位置。这不是你的公寓。你妈妈不会来看你的代码历史记录。它不一定要整洁。让它反映出发生了什么。

简化。移除最后三个步骤。在同一个存储库中检查和修复代码。这意味着必须维护的存储库减少66%。硬件减少66%。和,

您真正需要的是一种跟踪代码评审的方法。您可以使用类似于坩埚的东西,但也可以使用Jenkins。使用Jenkins跟踪更改有两种方法:

  • 为个人构建添加了一个描述:简单,不需要额外的插件。描述是灵活的。您可以进入一个项目,查看所有构建的列表,并查看描述。简单又简单。
  • 升级的构建插件:其中有两个:一个是标准插件,另一个是简单插件。

促进构建简单插件是...well。很简单。您可以在Jenkins配置页面中指定所有不同的升级级别,这就是所有构建将使用的内容。每个单独的构建只允许一个升级级别,并且这都是手动完成的。

标准的促进构建插件工作更多一些,但它也更加强大。它允许每个Jenkins工作都有自己的构建促进计划。晋升可以是手动的,也可以是自动的。当一个构建得到提升时,它可以产生其他的操作,例如发送电子邮件、部署到服务器等。此外,您还可以显示多个升级。想象一下以下的晋升级别:

  • 构建通过了单元测试:在完成构建并通过其单元测试时自动升级。可以向负责代码评审的QA人员发送电子邮件:
  • 代码检查已经完成。没有重大问题,:构建通常是好的。可能有几个小问题,但这个构建可以用于部署到其他环境中进行进一步测试。
  • 代码审查已经完成:发现了的主要问题:此构建存在重大问题,不应被认为已准备好部署到另一个环境进行进一步测试。
  • 开发人员修复了此构建中发现的问题:构建仍然很糟糕,但至少您知道开发人员已经声明处理了此构建中的问题。
票数 4
EN

Stack Overflow用户

发布于 2012-11-30 16:30:22

回答“它能完成”部分

是的,詹金斯可以照你说的做。我已经设置了使用存储库使用SVN的所有所需部分的作业(但不是您的过程)。我不确定吉特的事。

  1. 詹金斯开始单元测试。

添加生成步骤以执行Windows批处理文件。

  1. Jenkins提交了对存储库B的更改。

如果使用SVN,请查看Jenkins SVN Publisher插件。对于GIT来说,它看起来可能在Git插件上实现,但有一个小小的警告:“安装插件本身就像一个魅力,但配置系统在Windows下正常工作可能是一个棘手的问题。让我们看看你可能遇到的问题。”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13635119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档