相关疑难解决方法(0)

如何以及为什么要设置C#构建机器?

我正在与C#项目上的一个小型(4人)开发团队合作.我已经提议建立一个构建机器,它将对项目进行夜间构建和测试,因为我知道这是一件好事.麻烦的是,我们这里没有足够的预算,所以我必须证明费用是合理的.所以我想知道:

  • 我需要什么样的工具/许可证?现在,我们使用Visual Studio和Smart Assembly来构建,并使用Perforce进行源代码控制.我是否需要其他东西,或者是否有相当于运行自动脚本的cron作业?
  • 究竟是什么让我得到了,除了表明构建破坏了?我应该在这个脚本运行的解决方案(sln文件)中设置测试项目,这样我可以测试特定的功能吗?目前我们有两次这样的测试,因为我们没有时间(或坦白地说,经验)来进行良好的单元测试.
  • 我需要什么样的硬件?
  • 一旦构建完成并经过测试,将这种构建放在ftp站点上还是有其他方式进行内部访问是一种常见的做法吗?我们的想法是,这台机器做构建,我们都去了,但可以使调试版本,如果我们不得不这样做.
  • 我们应该多久进行一次这种构建?
  • 如何管理空间?如果我们制作夜间版本,我们是否应该保留所有旧版本,或者在大约一周左右后开始抛弃它们?
  • 还有什么我没看到的吗?

    我意识到这是一个非常大的话题,我刚刚开始.我在这里找不到这个问题的副本,如果那里有一本书我应该得到,请告诉我.

    编辑:我终于开始工作了!Hudson非常棒,FxCop表明我们认为实现的一些功能实际上是不完整的.我们还必须将安装程序类型从Old-And-Busted vdproj更改为New Hotness WiX.

    基本上,对于那些正在关注的人,如果你可以从命令行运行你的构建,那么你可以把它放到哈德森.通过MSBuild从命令行运行构建本身就是一个很有用的练习,因为它会强制你的工具是最新的.

  • c# build-automation continuous-integration hudson build

    144
    推荐指数
    6
    解决办法
    4万
    查看次数

    哈德森与詹金斯在2012年

    在2011年,哈德森和詹金斯跟随(恕我直言)的情况 - 哈德森有点稳定,但詹金斯的发展有点快.
    现在2012年"哈德森与詹金斯"的情况如何?

    hudson jenkins

    143
    推荐指数
    2
    解决办法
    6万
    查看次数

    Python的"漂亮"持续集成

    这是一个有点虚荣的问题,但BuildBot的输出并不是特别好看.

    例如,与...相比

    ..和其他人,BuildBot看起来相当......古老

    我目前正在玩Hudson,但它是以Java为中心的(虽然在本指南中,我发现它比BuildBot更容易设置,并产生了更多信息)

    基本上:有没有针对python的持续集成系统,它会产生大量闪亮的图形等等?


    更新:从那时起,Jenkins项目取代了Hudson作为该软件包的社区版本.原作者也转到了这个项目.Jenkins现在是Ubuntu/Debian,RedHat/Fedora/CentOS等标准软件包.以下更新仍然基本正确.与詹金斯一起做这件事的出发点是不同的.

    更新:在尝试了一些替代方案之后,我想我会坚持使用哈德森.诚信很好,很简单,但非常有限.我认为 Buildbot更适合拥有众多构建从服务器,而不是像我使用它一样在一台机器上运行.

    为Hudson设置Python项目非常简单:

    • http://hudson-ci.org/下载Hudson
    • 运行它 java -jar hudson.war
    • 在默认地址上打开Web界面 http://localhost:8080
    • 转到Manage Hudson,Plugins,单击"更新"或类似内容
    • 安装Git插件(我必须git在Hudson全局首选项中设置路径)
    • 创建新项目,输入存储库,SCM轮询间隔等
    • 安装nosetests通过,easy_install如果它还没有
    • 在构建步骤中,添加 nosetests --with-xunit --verbose
    • 选中"发布JUnit测试结果报告"并将"测试报告XML"设置为 **/nosetests.xml

    这就是所需要的.您可以设置电子邮件通知,插件值得一看.我目前正在使用的一些Python项目:

    • SLOCCount插件计算代码行(并绘制图表!) - 您需要单独安装sloccount
    • 用于解析PyLint输出的违规(您可以设置警告阈值,绘制每个构建的违规数量)
    • Cobertura可以解析coverage.py输出.使用时,Nosetest可以在运行测试时收集覆盖率nosetests --with-coverage(这会将输出写入**/coverage.xml)

    python continuous-integration buildbot jenkins

    116
    推荐指数
    6
    解决办法
    3万
    查看次数

    持续集成服务器

    我的公司正在考虑改变持续集成服务器(我不会说我们现在有哪一个,所以我不会反对你的反应:))我想知道是否有人有任何建议?最佳用户体验,维护难度等......

    我们的代码都在java中,我们使用ANT作为构建工具.

    java continuous-integration

    78
    推荐指数
    8
    解决办法
    2万
    查看次数

    Hudson和CruiseControl对Java项目有什么区别?

    我认为标题总结了它.我只是想知道为什么一个或另一个对于Svn的Java项目的连续集成构建更好.

    java continuous-integration cruisecontrol hudson jenkins

    72
    推荐指数
    4
    解决办法
    6万
    查看次数

    Ansible是Hudson/Jenkins等CI工具的替代品吗?

    最近,在我们公司,我们决定使用Ansible进行部署和持续集成.但是当我开始使用Ansible时,我找不到用于使用Maven构建Java项目的模块,或者用于运行JUnit测试或JMeter测试的模块.

    所以,我处于一个令人怀疑的状态:可能是我以错误的方式使用Ansible.

    当我查看Jenkins时,它可以执行构建,运行测试,部署等操作.Hudson缺少的是在AWS等云环境中创建/删除实例.

    那么,一般来说,我们需要使用Ansible/Jenkins的目的是什么?对于CI,我需要使用Ansible和Jenkins的组合吗?

    请详细说明Ansible的正确用法.

    hudson jenkins ansible

    70
    推荐指数
    2
    解决办法
    4万
    查看次数

    独立开发人员(.NET)的最佳持续集成设置

    我正在寻找一个轻量级,易于设置的CI服务器,我可以在我的笔记本电脑上运行Visual Studio和Resharper.我显然看着像CruiseControl,TeamCity等所有大牌,但对我来说最大的考虑因素是易于设置和较小程度的内存占用.

    编辑:我也想在大2/3之外的其他解决方案的一些建议......

    编辑:如果没有其他人有任何补充,我即将接受答案?

    .net c# asp.net continuous-integration

    56
    推荐指数
    3
    解决办法
    2万
    查看次数

    远程Java编译器

    我正在寻找一种方法来提高我团队的工作效率,一种方法是缩短编译和单元测试所需的时间,打包和部署我们的Java EE应用程序,这个应用程序越来越大.

    我所知道的简单解决方案是建立一台功能强大的计算机,它具有N个处理器(N~ =开发人员数量)和一个超快的磁盘系统和大量内存,并运行此计算机上的所有内容并通过X远程连接到它.它肯定比编译我们的笔记本电脑快得多,但仍然比购买每个开发人员他/她自己的超级计算机更便宜和更容易维护.

    有没有其他方法可以解决这个问题?例如,我们可以在本地运行我们的IDE然后告诉它远程编译java源吗?Netbeans/Eclipse/IntelliJ /等可以这样做吗?或者是否有一个特殊的工具可以实现远程Java编译,也可以使用多个处理器?它不一定是免费/开源的.

    不幸的是我们的笔记本电脑必须运行一个(公司管理的)Windows Vista,所以另一个原因是让我们使用独立的服务器计算机,最后摆脱烦人的托管环境.

    编辑:总结到目前为止的答案,缩短构建时间的一种方法是单独为开发人员保留编译(因为编译应该是快速的),跳过运行单元测试和热部署(没有打包)到容器.

    然后,当开发人员决定检查他/她的代码时,会触发持续集成服务器(如Hudson)来清理和构建并运行测试和打包和部署.

    解决方案:我接受了Thorbjørn的答案,因为我认为这将是我最接近我计划进行的方式.虽然出于好奇,我仍然有兴趣解决原始问题(=远程Java编译)...

    java

    17
    推荐指数
    2
    解决办法
    4192
    查看次数

    Hudson奴隶可以运行插件吗?

    我们为Hudson提供了一个自定义插件,可以将构建的输出上传到远程计算机上.我们刚开始研究使用Hudson slave来提高构建的吞吐量,但是使用自定义插件的项目无法使用FileNotFoundExceptions进行部署.

    从我们可以看到,即使构建发生在从属服务器上,插件也会在主服务器上运行.未找到的文件确实存在于从站上,但不存在于主站上.

    问题:

    1. 插件可以在奴隶上运行吗?如果是这样,怎么样?有没有办法将插件识别为"可序列化"?如果Hudson奴隶无法运行插件,那么SVN结账会如何发生?
    2. 这里的一些开发人员认为解决这个问题的方法是让Hudson master的工作区成为一个网络驱动器,让奴隶使用相同的工作空间 - 这对我来说是不是很糟糕?

    hudson hudson-plugins

    10
    推荐指数
    1
    解决办法
    4358
    查看次数

    在持续集成系统Hudson中编译Android项目?

    我正在和Hudson建立一个连续集成系统,这真是太棒了.我有一个SVN存储库并集成了一个post-commit钩子,当有人提交到存储库时,它会通知Hudson.这部分工作很精彩.

    一般的想法是,如果项目失败,使用单元测试或其他任何东西,它应该告诉协作者(我使用简单的电子邮件通知器atm).但如果它成功了,我希望它能够编译项目并构建一个未签名或签名的.apk文件.

    什么是最简单或最聪明的方法?我已经读过你可以使用Shell命令来构建.apk,但我似乎无法弄清楚它是如何工作的?任何人都可以告诉我如何做到这一点,还是应该寻求其他解决方案?

    提前致谢

    芬恩拉森

    continuous-integration android hudson compilation

    6
    推荐指数
    1
    解决办法
    2560
    查看次数