The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:
我所参与的每个项目都以持续集成流水线的设置开始。我是云服务的忠实粉丝,这就是为什么我一直在使用Travis的原因。最近,我的一些客户对这个选择提出了质疑,主要是因为价格问题。因此,我决定对市场进行简要分析。
我在我找到的每个CI服务中配置了一个名为Rultor的开源项目。所有这些服务对于开源项目都是免费的。它们都是托管的,不需要任何服务器安装。以下是按照我的个人偏好顺序排列的服务(前四个是最好的,强烈推荐):
如果你知道其他好的持续集成服务,请给我发送电子邮件,我会审核并将它们添加到这个列表中。另外,这里是一个“完整的”持续集成软件和服务列表的链接。
顺便说一下,这个列表中的一些平台联系了我,并要求重新审查它们。有些甚至提出给我钱,以使它们在列表中排名更高(开玩笑)。不管怎样,由你决定这是一个好的迹象还是不好的迹象(我认为这是好的,他们关心自己的公关)。我在列表中用 ☺ 表情标记了它们。
Shippable配置起来很容易,因为它能直接理解.travis.yml
。用户界面易于导航,因为它根本没有”设置”页面(或者我没找到)。一切都通过存储库中的shippable.yml
文件进行配置。该服务看起来稳定且强大,迄今为止没有任何投诉。他们特别酷的地方在于允许您在Docker容器中构建。
Travis是我迄今为止见过的最好的平台。主要是因为它是最受欢迎的。与GitHub完美集成并有适当的文档。一个重要的缺点是每月129美元的价格。”用这笔钱,你可以获得一个专用的EC2实例并在那里安装Jenkins”——我的一些客户说。我强烈反对,因为Jenkins需要24x7的管理,这比129美元要贵得多,但很难解释清楚。
Wercker是一款来自阿姆斯特丹的欧洲产品,目前仍处于测试阶段,因此对所有项目免费。该平台看起来非常有前途。对于私有存储库仍然免费,并且由投资支持。他们还有一个有趣的构建”盒子”的概念,类似于预配置的Docker容器。在过去的几个月里,它运行相当稳定,迄今为止没有任何投诉。
AppVeyor是唯一一个运行Windows构建的服务。尽管我主要使用Java和Ruby,这两种语言被认为是平台无关的,但它们往往恰好相反。当你的构建在Linux上成功时,几乎没有保证它会在Windows或Mac上通过。我计划在每个项目中使用AppVeyor,结合其他一些CI服务。以下是我如何将Maven构建与AppVeyor集成。
SemaphoreApp 配置简单,易于使用。给我一种轻量级系统的印象,这一点我非常欣赏。不过,他们没有预装任何 Maven,但是这很容易通过一个简短的自定义脚本来解决,该脚本可以下载并解压最新的 Maven。另外一个缺点是它们不能通过文件(比如 .travis.yml
)来配置,你需要通过用户界面来完成所有操作。他们还支持构建之间的缓存。
Snap-CI 是 ThoughtWorks 公司的产品,他们也是开源持续集成服务器 Go 的作者。它看起来比其他产品更复杂一些,允许你定义“阶段”并将它们组合成流水线。我还不确定这些机制在我们主要使用的小型和中型项目中有什么帮助,但它们看起来很“酷”。还有一个非常不幸的限制是每个构建只有 2Gb 的内存,我有一些 Java 项目因此而失败。除此之外,他们不允许完全访问构建服务器,例如我们无法在 /etc
目录下进行任何修改,这对我们来说是一个阻碍。
Codeship 使用起来还不错,但他们的网页界面看起来有点过时。除此之外,他们承诺支持处理拉取请求,但我无法配置成功。即使他们构建了拉取请求,也没有通知我们的 GitHub 上的拉取请求。也许我会找到解决办法,目前还不清楚。
CircleCI 我仍然不知道为什么我的构建会在这里失败。配置起来非常困难,而且很难理解发生了什么。正在努力弄清楚…
SolanoLabs 看起来相当不成熟且难以配置。当添加新的代码库时,他们甚至不支持自动配置 GitHub 钩子。然而,他们的销售人员对我进行了相当激进的推销。
Hosted-CI 仅适用于 iOS/OSX。即使是对于开源项目,他们也没有提供任何免费服务。我还没有机会测试过他们。
CloudBees 基本上是一个托管的 Jenkins。我真的不喜欢 Jenkins,所以无法推荐这个平台。
DeployBot 甚至不允许我通过 GitHub 登录,嗯?他们似乎更专注于“部署”,而不仅仅是持续集成。
Vexor 看起来不错,并且提供了一种独特的计费模式,按构建次数收费,而不是按月收费。我肯定推荐你试试。不过,我无法让它工作…
GreenHouseCI 是一个用于移动应用(iOS、Android 等)的持续集成平台。看起来很有趣,只是我没有一个完整的移动应用来测试它。
gitlab-ci: 待审核
coverity.com: 待审核并添加到列表中。
buddy.works: 待审核。
AWS Code Build 和 AWS Code Deploy: 待审核。
Ship.io 已经停止服务(截至 2016 年 9 月 20 日)。
ZeroCI.com 已经停止服务(截至 2016 年 8 月 28 日)。
Drone.io 不再提供托管服务,但是是开源的(截至 2017 年 1 月 23 日)。
Hosted-ci 看起来已经不活跃(截至 2017 年 4 月 16 日)。
Magnum-CI.com 看起来已经不活跃(截至 2017 年 5 月 30 日)。
顺便提一句,如果你不喜欢将持续集成保留在云端的想法,可以考虑以下本地安装的软件包(按照优先顺序):Jenkins、TeamCity、Go、Strider、BuildBot。
请记住,无论你的持续集成服务有多好且昂贵,除非将主分支设置为只读,否则它都对你没有帮助。
1 This means that the platform can build your repo in Linux environment. Almost all of them do that by default, unless you configure them otherwise.
2 Some of them can build on Windows platform.
3 MacOS support means that an Objective-C/Swift product can be built there.
4 I mean GitHub pull request support here. Some of them can be integrated with GitHub and will build pull requests before they are merged. Build status will be visible in GitHub. A pretty convenient feature.
5 Logs compression is a critical feature, at least for me. Most of my logs are from Maven and without col -b
they look too long and unreadable.
6 Looks like Docker containers must be supported by all of them, but unfortunately it’s not the case. Ideally, all builds should run in containers.
Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-17 at 17:14