GitHub 欢迎一切 CI 工具
持续集成（CI）工具可以帮助你在每次提交时执行测试，并将报告结果提交到合并请求，从而帮助维持团队的质量标准。结合持续交付（CD）工具，你还可以在多种配置上测试你的代码，运行额外的性能测试，并自动执行每个步骤，直到进入产品阶段。
GitHub CI CD
持续集成（CI）工具可以帮助你在每次提交时执行测试，并将报告结果提交到合并请求，从而帮助维持团队的质量标准。结合持续交付（CD）工具，你还可以在多种配置上测试你的代码，运行额外的性能测试，并自动执行每个步骤，直到进入产品阶段。
![GitHub and all CI tools](/data/attachment/album/201712/26/143738wtboxug1zthtq55g.png)


持续集成（[CI](https://en.wikipedia.org/wiki/Continuous_integration)）工具可以帮助你在每次提交时执行测试，并将[报告结果](https://github.com/blog/2051-protected-branches-and-required-status-checks)提交到合并请求，从而帮助维持团队的质量标准。结合持续交付（[CD](https://en.wikipedia.org/wiki/Continuous_delivery)）工具，你还可以在多种配置上测试你的代码，运行额外的性能测试，并自动执行每个步骤，[直到进入产品阶段](https://developer.github.com/changes/2014-01-09-preview-the-new-deployments-api/)。


有几个[与 GitHub 集成](https://github.com/works-with/category/continuous-integration)的 CI 和 CD 工具，其中一些可以在 [GitHub Marketplace](https://github.com/marketplace/category/continuous-integration) 中点击几下安装。有了这么多的选择，你可以选择最好的工具 —— 即使它不是与你的系统预集成的工具。


最适合你的工具取决于许多因素，其中包括：


* 编程语言和程序架构
* 你计划支持的操作系统和浏览器
* 你团队的经验和技能
* 扩展能力和增长计划
* 依赖系统的地理分布和使用的人
* 打包和交付目标


当然，无法为所有这些情况优化你的 CI 工具。构建它们的人需要选择哪些情况下服务更好，何时优先考虑复杂性而不是简单性。例如，如果你想测试针对一个平台的用特定语言编写的小程序，那么你就不需要那些可在数十个平台上测试，有许多编程语言和框架的，用来测试嵌入软件控制器的复杂工具。


如果你需要一些灵感来挑选最好使用哪个 CI 工具，那么看一下 [Github 上的流行项目](https://github.com/explore?trending=repositories#trending)。许多人在他们的 README.md 中将他们的集成的 CI/CD 工具的状态显示为徽章。我们还分析了 GitHub 社区中超过 5000 万个仓库中 CI 工具的使用情况，并发现了很多变化。下图显示了根据我们的拉取请求中使用最多的[提交状态上下文](https://developer.github.com/v3/repos/statuses/)，GitHub.com 使用的前 10 个 CI 工具的相对百分比。


*我们的分析还显示，许多团队在他们的项目中使用多个 CI 工具，使他们能够发挥它们最擅长的。*


[![Top 10 CI systems used with GitHub.com based on most used commit status contexts](/data/attachment/album/201712/26/143739gqf6hd4fla4flxoz.png)](https://user-images.githubusercontent.com/7321362/32575895-ea563032-c49a-11e7-9581-e05ec882658b.png)


如果你想查看，下面是团队中使用最多的 10 个工具：


* [Travis CI](https://travis-ci.org/)
* [Circle CI](https://circleci.com/)
* [Jenkins](https://jenkins.io/)
* [AppVeyor](https://www.appveyor.com/)
* [CodeShip](https://codeship.com/)
* [Drone](http://try.drone.io/)
* [Semaphore CI](https://semaphoreci.com/)
* [Buildkite](https://buildkite.com/)
* [Wercker](http://www.wercker.com/)
* [TeamCity](https://www.jetbrains.com/teamcity/)


这只是尝试选择默认的、预先集成的工具，而没有花时间根据任务研究和选择最好的工具，但是对于你的特定情况会有很多[很好的选择](https://github.com/works-with/category/continuous-integration)。如果你以后改变主意，没问题。当你为特定情况选择最佳工具时，你可以保证量身定制的性能和不再适合时互换的自由。


准备好了解 CI 工具如何适应你的工作流程了么？


* [浏览 GitHub Marketplace](https://github.com/marketplace/category/continuous-integration)




---


via: <https://github.com/blog/2463-github-welcomes-all-ci-tools>


作者：[jonico](https://github.com/jonico) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

