小型.NET开源项目的持续集成[关闭]

Posted

技术标签:

【中文标题】小型.NET开源项目的持续集成[关闭]【英文标题】:Continuous Integration for a small .NET open source project [closed] 【发布时间】:2010-12-31 18:07:50 【问题描述】:

我正在启动一个小型开源项目,我自己是当时唯一的贡献者。不过,我认为continuous integration 设置对于检测我是否破坏了构建很有用。

是否有适用于非常小的项目的免费托管持续集成服务器?谷歌搜索出现了CodeBetter,但我不确定他们是否会接受一个刚刚开始的单人项目。

我更喜欢TeamCity,但我愿意接受建议。

注意 - 托管 解决方案对我来说是必须的。我不想设置和维护持续集成服务器,因此“TeamCity”或“CruiseControl”之类的答案根本无关紧要。

具体要求:

我在GitHub 托管我的项目,因此持续集成服务器需要Git 集成 我希望持续集成服务器运行 .NET 集成(单元)测试 很高兴 - 我还需要访问 mysql 服务器(虽然我可以修改测试以使用嵌入式 SQLite,但它们目前针对外部 MySQL 服务器运行)。

【问题讨论】:

感谢您的领导,尽管我不确定这是一个骗局。无论如何,我添加了一些我正在寻找的特定要求。 加上要求,确实不是骗人的。 好问题。鉴于您(几乎可以肯定)需要在 Windows 上运行的东西,这听起来相当艰难(或至少可能很昂贵)。我不太了解您需要什么来运行 .NET 单元测试,但是看看这是否都可以在 Mono 下运行会很酷。 现在在云时代肯定应该很容易,不是吗?我什至愿意支付一小笔保险费。 为什么坚持使用托管解决方案?通常,构建服务器需要与托管解决方案一样多的维护,就像放置在内部时一样——也就是说,当构建配置更改或构建中断时。我什至很乐意在后台使用我的开发笔记本电脑进行构建。 【参考方案1】:

AppVeyor 与 Github 完美集成,对开源项目免费,而且非常易于设置。

使用 YAML 或 UI 配置构建。免费帐户一次仅限于一个版本。支持部署到 NuGet,以及项目和帐户源。它与 GitHub 深度集成,例如允许创建发布。它支持构建矩阵、AssemblyInfo 修补、滚动构建、构建优先级、状态标记、构建通知等。


Travis 是众所周知的 CI(到目前为止似乎是 most popular hosted CI),现在它也是 supports building C#, F# and VB projects。需要注意的是,它仅支持 Linux 和 Mono,并且处于测试阶段(“可能随时被删除或更改”)。


MyGet 是一个托管包服务器,但现在它也支持构建服务(当前预览版)和other features。它对公共提要免费(最大 500 MB),并为approved open-source projects 提供稍好的功能(更大的存储空间和画廊)。构建服务针对包进行了优化:NuGet 提要、MyGet 提要、SymbolSource 集成等。

【讨论】:

我刚开始在一些小型 .NET 项目中使用它,它非常好。【参考方案2】:

现在由 Microsoft 免费为最多 5 人的团队提供 Team Foundation Server

它提供:

源代码控制:TFS、Git 敏捷规划:敏捷、Scrum、CMMI 持续构建 合作 集成 测试执行 部署

Visual Studio Team Services 不需要在其上托管代码、code can be pulled from GitHub 或任何 Git 存储库。

如果项目很小并且没有复杂的构建要求,可以使用Hosted pool 执行 CI 构建。有几个限制:可用的软件、一次构建一个、一小时的时间限制等。如果这还不够,您可以通过在您的机器上运行脚本来添加自己的构建代理。

GitHub 支持不完整(例如,未构建拉取请求),但支持大多数功能。 Shields.io 尚不支持 VSO,但可以使用自定义盾牌。

开源项目的主要缺点是构建日志、测试结果和其他数据不会公开。只有五个用户可以通过免费帐户访问该项目。有一个 suggestion on UserVoice 可以让公共项目成为可能。

【讨论】:

【参考方案3】:

我知道这个帖子很老了,但对于仍在寻找答案的人,我建议看看AppHarbor

设置与 Github 和 Bitbucket 的集成非常容易,并且您可以通过“addon”选项免费获得基本的数据库连接。

对初创公司来说非常方便。

【讨论】:

这是目前最好的免费选项。 我正在查看 AppHarbor,但它似乎根本不是 CI 解决方案。它看起来非常适合托管 .NET Web 应用程序,但如果您想持续集成项目,则不是。 Jenkins 怎么样?【参考方案4】:

还可以看看 CodeHaus:

http://codehaus.org/

他们使用 Atlassian 的 Bamboo CI 软件。

没有意见 - 因为我从未使用过它。

【讨论】:

它是否支持 .Net 项目/NUnit?【参考方案5】:

我认为您不会轻易找到真正免费的(我的意思是对于任何项目、任何语言)托管的 CI 服务,因为这样的服务非常占用 CPU、RAM、磁盘这意味着特定的规则、硬件、定价。

对于某些优惠,请在此处查看Outsourcing Continuous Integration 或this question。我没有详细查看所有解决方案,因此我不知道它们是否能满足您的要求(语言、工具和定价)。

或者尝试加入为开源项目提供持续集成的锻造,例如 The Codehaus编辑: 不是 .NET 项目 AFAIK 的选项)或 CodeBetter .这肯定需要一些努力才能让您的项目被接受(实际上很少有人是恕我直言),但这可能是您的最佳选择。

【讨论】:

【参考方案6】:

我刚刚开始使用 OnCheckin:

https://oncheckin.com/

他们专门为 .NET 项目提供服务。

【讨论】:

我已经检查过了。它似乎为 ASP.NET 项目提供免费的构建 + 部署,构建 + 单元测试 + 部署的成本为 30 美元。我仍然考虑在我的测试服务器上使用本地 TeamCity 安装。 在撰写本文时,OnCheckin 对一个项目是免费的,每月 30 美元的计划适用于 3 projects【参考方案7】:

也许正确的答案是让某人为这类事情提供一组 EC2 映像,这样用户可以使用亚马逊,或者如果他们偏执的话,可以在防火墙内的 Eucalyptus 上构建自己的云......但是无论哪种情况,您都可以节省构建这些图像的时间和成本。

【讨论】:

我认为这可能很有趣。我喜欢 Hudson 及其 EC2 插件来启动构建,但这需要在开发人员的机器上运行 Hudson 的主版本。此外,EC2 不是免费的,这是必需的。 Eucalyptus 是免费的,如果您需要 Windows,最多可以获得硬件和操作系统许可证。 我以前没有听说过 Eucalyptus,但据我所知 (www.eucalyptus.com),您需要拥有自己的硬件和操作系统并设置所有内容 - 所以它不是托管在全部? 啊,我也刚刚重新阅读了您所写的内容,发现您的意思是作为替代方案,因为它与 EC2 兼容。 :)【参考方案8】:

MikeCI 是一种经济实惠的托管 CI 服务,每月 10 美元起,您可以在几分钟内建立云构建。它目前支持 Ruby、Maven 和 Ant。它有 30 天的免费试用期,因此您可以试一试,看看效果如何。我个人认为这很棒,而且我认为他们希望支持 .Net 和 Objective C!

这是他们的网站http://www.mikeci.com

【讨论】:

【参考方案9】:

我知道这可能是一个旧线程,但是

这是另一个选择:

结帐Jenkins。

它确实支持我现在正在使用的Jenkins.NET。

这是另一个 SO-RELATED-THREAD:TFS 2008/2010 vs Jenkins for Continuous Integration

【讨论】:

【参考方案10】:

有RunCodeAt,Pascal 的评论指出了我。与 github 集成非常容易,我碰巧在其上托管我的项目。我试试看。

【讨论】:

我没有提到它,因为我找不到它们是否支持 .NET 项目(我的理解是它们从 Ruby 开始,然后包含 Java,但我找不到任何关于 .NET 的信息) . 是的,据我了解,他们似乎不支持 .Net。

以上是关于小型.NET开源项目的持续集成[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

开源Asp.Net Core小型社区系统

谁推荐几个小型的C/C++的开源项目,用于学习

开源项目集锦(持续更新)...

什么是Jenkins?

自动打包发布到服务器的持续集成工具:Jenkins+钉钉

PhpStorm 集成 开源中国(oschina.net)的Git项目,提交SVN时注意事项