TeamCity 与 GitLab 持续集成

TeamCity 灵活多变、适合任何工作流,它提供强大的 CI 工具,能够与 GitLab.com、GitLab Enterprise Edition 和 GitLab Community Edition 完美集成。

各种规模,随意构建,拒绝失败

随着项目规模的不断扩大和复杂性的日益增长,仅仅使用 GitLab 的内置 CI 功能越来越难以让我们保持高效的交付流程。而这正是 TeamCity 大显身手之处!TeamCity 是一种通用 CI/CD 解决方案,它不强制执行任何特定的工作流,可以为各种规模的团队提供最大的灵活性和可配置性。

多平台、多云、多语言

TeamCity 适用于 Linux、Windows 和 macOS,可以在您自己的硬件上、您喜欢的云托管基础架构上、Kubernetes 集群中或它们的任意组合上运行。它支持所有编程语言,并且可与所有用于构建和测试软件的流行工具集成。

获得实用反馈

TeamCity 会针对失败的构建和测试提供有价值的实用反馈,帮助您提高开发流程的效率。它会在测试失败时实时向您发送通知,保留构建历史记录,记录它们的持续时间,并将不稳定的测试标记为不稳定。每个测试都可能包括堆栈跟踪、屏幕截图、日志和快速调查所需的其他数据。

支持任何工作流

轻松地为 GitLab 项目设置持续集成。配置与 GitLab 仓库的连接后,只需点击几下即可创建新的 TeamCity 项目。无论您如何组织项目和工作流,TeamCity 都可以进行构建。

  • 对每次提交运行构建和单元测试,获得更改的即时反馈。
  • 根据用户名、分支名称、提交消息或文件更改创建个性化工作流。
  • 当合并请求打开时触发构建,以在审查代码之前运行自动测试。
  • 安排每夜构建,运行一整套回归测试,保持较高的代码质量。
  • 将更改合并到发布分支时,自动执行一整套构建和测试。
  • 当相关构建成功完成后,启动依赖的项目构建。

您可以使用 TeamCity 将不同的编程语言、平台和构建基础架构组合到一个可靠的 CI 管道中。您甚至可以添加多个 VCS 根目录,为项目创建构建管道,并将仓库托管在 GitLab 和其他版本控制系统中,包括 GitHub、Bitbucket、Azure DevOps、Mercurial、Subversion 和 Perforce。详细了解 VCS 集成

构建后自动化

TeamCity 完全支持 GitLab 的功能,可以无缝透明地集成,为您提供全面的 DevOps 流程视图。

构建状态发布

在从您将构建添加到队列那一刻起到完成构建的整个过程中,TeamCity 可以将每次构建的当前状态实时发布到 GitLab,因此您可以直接通过提交或合并请求监控进度、查看结果。

有关详情,请参阅我们文档中的提交状态发布器部分。

自动合并和手动合并

您可以配置规则,作为 CI 管道的一部分将更改自动合并到一个分支。由于支持层叠合并,您可以创建复杂的工作流,将更改提升至受保护的集成和发布分支。如果有任何测试失败或者不符合其他自动合并条件,您仍然可以选择直接从 TeamCity 用户界面手动合并更改,无需返回到 GitLab。

有关详情,请参阅本文档的自动合并手动分支合并部分。

VCS 标签

TeamCity 可让您轻松设置 Git 标签,自动或手动记录成功构建(或所有构建)的源代码的版本号。

有关详情,请参阅我们文档中的 VCS 标签部分。

问题跟踪器集成

您可以直接在 TeamCity 用户界面中查看提交消息中引用的任何 GitLab 问题的详细信息。

有关详情,请参阅我们文档中的将 TeamCity 与问题跟踪器集成部分。

即时通知

向提交作者和团队成员通知损坏的构建或失败的测试,庆祝成功的测试运行,或者在完成持续集成检查并且准备对更改进行审查时通知代码审查人员。TeamCity 提供了对 Slack、电子邮件、IDE 和浏览器通知的原生支持,同时,丰富的插件生态系统又提供了对 Microsoft Teams、Telegram 和 Discord 通知的额外支持。

简化的身份验证过程

无论是使用 TeamCity Cloud 还是 TeamCity On-Premises,您都可以利用现有的 GitLab.com 或 GitLab CE/EE 帐户提供身份和访问管理。

  • 用户可以使用现有 GitLab 凭据登录 TeamCity。
  • 在自动将构建和测试结果发布到 GitLab 后,您可以选择允许所有 GitLab 用户访问 TeamCity,也可以选择限制访问权限,只让负责配置构建管道的一小部分用户访问。
  • 将现有 TeamCity 用户映射到 GitLab 配置文件。
  • 在 TeamCity 中独立于 GitLab 角色配置用户权限。

强大的 TeamCity 功能与您的工作流相辅相成

实时的测试情报

当构建和测试失败时,首要任务是了解问题的性质,确定问题的根本原因。TeamCity 可以:

  • 准确识别引入故障的提交,通知该更改的作者,并自动分配调查。
  • 分析测试历史记录,识别在后续构建中修正的故障,找出不稳定的测试。
  • 使用 IntelliJ IDEA 或 ReSharper 中的检查,在您的构建管道中提供静态的代码分析结果。
  • 借助对 Java 和 .NET 工具的原生支持和许多其他构建运行程序(包括 Ant、Maven 和 Python)的集成,衡量自动化测试的覆盖范围。

CI 优化

简短、快速的反馈是制定有效 DevOps 策略的关键。TeamCity 简化了构建和测试工作流,可以为您的最新更改快速提供见解,加快您的发布流程,并让您有更多时间调查和解决任何问题。

  • 默认优化构建步骤,重复利用未更改的构建工件。
  • TeamCity 会自动识别最快的构建代理和最高效的任务排序,从而为大型项目节省大量计算资源和时间。
  • 借助自动并行功能,在多个代理之间分配自动化测试,从而更快地获得反馈。
  • 实时报告测试结果,因此您甚至可以在构建步骤完成之前就着手调查失败原因。

常见问题解答:借助 TeamCity 和 GitLab 实现持续集成

TeamCity 的 GitLab 集成是免费功能吗?

包括免费的自托管版本在内,所有版本的 TeamCity 都可以使用 GitLab 集成。另外,您还可以在 TeamCity Cloud 中免费试用,试用期为 14 天。

TeamCity 比 GitLab 更好吗?

我们无法准确地比较 TeamCity 和 GitLab,因为它们是不同类型的工具。与 GitLab 的内置 CI/CD 功能相比,TeamCity 提供更多的功能和更高的灵活性,但它没有问题跟踪或 Git 托管等功能。

TeamCity 是否支持 GitLab 容器注册表?

是的,TeamCity 支持所有流行的 Docker 注册表,包括 GitLab 容器注册表。除了常用的拉取和运行操作外,TeamCity 还可以在服务器清理过程中自动移除过时的 Docker 镜像,这在本地部署的 CI/CD 设置中特别有用。

详细了解 TeamCity 的 Docker 集成

可以在 TeamCity 中构建代码但不将其提交至 GitLab 吗?

通过在基于 IntelliJ 的 IDE 或 Visual Studio 中安装 TeamCity 插件,您无需提交即可对代码运行 CI 管道。此功能尤其受到游戏开发者的喜欢。