从队伍中迁移

本文档概述了如何从Teamcity迁移到Circleci。

快速开始

Circleci从队伍的设置和配置中具有各种差异。为了尝试Circleci的最佳体验,建议您入门以下内容:

  1. 阅读(或至少浏览)本文档巩固概念差异。

  2. 快速构建并运行简单你好世界工作在任何存储库中。此配置演示了我们的YAML设置的简单性,它展示了如何定义执行环境和在其内运行的步骤。Circleci上的所有作业都分享了这种格式。

  3. 了解配置后,修改执行程序和个人步骤以满足您的需求。例如,一个Rails项目可以使用Ruby容器图像并运行Bundler.命令。咨询我们的教程页面对于不同语言和框架的各种示例。

  4. 完成一份作业后,在Circleci上设置您的其他作业配置工作流程。这将基本上迁移您的构建链。

  5. 下一个,优化你的工作具有高级功能要查看Circleci平台上的构建速度有多速度。

  6. 在整个过程中,请咨询配置参考有关Circleci平台上的所有可用配置的列表。

为什么迁移到Circleci?

Circleci是一种现代化的CI / CD工具,旨在表现和开发人员的生产力。使用灵活的配置系统,您可以为您的应用程序的特定需求定义复杂的工作流程和作业。

配置为代码

大多数Circleci的配置是通过yaml完成的。学习很容易维护和微不足道,可以跟踪您的CI / CD管道,并将其源代码的其余部分被跟踪和版本。

自动缩放架构

所有构建环境都是根据您的配置动态创建的,并在完成任务时终止。您可以同时运行一百 - 或数百个工作,而无需任何麻烦或开销。

灵活性

Circleci是供应商和工具无关的。我们的配置允许与具有API的任何平台或云提供商集成。看我们集成页面对于现有的伙伴关系。依赖关系和库可以在您的工作中安装ad-hoc,我们提供依赖性缓存加快后续构建。

可共享,可重复使用的配置

可以使用的步骤,执行环境和作业,参数化,共享,并在不同的项目和团队中进行参数化,共享和重复使用Circleci Orbs.。利用众多的一体化和眼球已经为你写了。

我们有各种各样的功能将我们的解决方案分开。立即注册免费帐户并试试我们,或者如果你对你的团队感兴趣,联系我们的销售团队建立试验。

概念

高级别差异

  • Circleci和Teamcity分享了项目的概念。

  • Teamcity的构建配置相当于Circleci的工作,这是由达到目标的许多步骤或命令组成的原子元素(例如运行单元测试)。

  • Teamcity传统上使用UI来配置大多数构建,并具有Kotlin脚本配置是一个较新的功能。Circleci使用Yaml配置大部分管道功能。

队伍settings.kts. 等价Circleci.config.yml.
导入JetBrains.BuildServer.configs.kotlin.v2019_2。*导入JetBrains.BuildServer.configs.Kotlin.v2019_2.BuildSteps.script版本:“2019.2”项目{buildtype(helloworld)}对象helloWorld:buildtype({name =“hello world”步骤{script {scriptContent =“Echo'Hello World!'”}}})
版本:2.1工作流程:Hello-Workflow:作业: -  Hello-ob作业:#定义作业Hello-Job:#定义环境Docker: - 图片:CIMG / Base:Stable Auth:Username:MyDockerHub-User密码:$ DockerHub_Password#上下文/项目UI Env-var参考#定义工作步骤的步骤: -  Checkout  -  Run:Echo“Hello World!”
队伍settings.kts.
导入JetBrains.BuildServer.configs.kotlin.v2019_2。*导入JetBrains.BuildServer.configs.Kotlin.v2019_2.BuildSteps.script版本:“2019.2”项目{buildtype(helloworld)}对象helloWorld:buildtype({name =“hello world”步骤{script {scriptContent =“Echo'Hello World!'”}}})
等价Circleci.config.yml.
版本:2.1工作流程:Hello-Workflow:作业: -  Hello-ob作业:#定义作业Hello-Job:#定义环境Docker: - 图片:CIMG / Base:Stable Auth:Username:MyDockerHub-User密码:$ DockerHub_Password#上下文/项目UI Env-var参考#定义工作步骤的步骤: -  Checkout  -  Run:Echo“Hello World!”
  • circleci而不是构建链子工作流程,它定义了作业之间的依赖关系和流量。

  • 一种管道指项目的所有配置,工作流和作业。这种多层结构允许强大的灵活性和对不同工作负载的关注分离。

队伍建立链子 等效Circleci工作流程
项目{序列{build(compile)parallel {build(test1)构建(test2)}构建(package)build(发布)}} / * buildtype定义假定
版本:2.1工作流程:构建部署:作业: -  Compile  -  Test1:Compile  -  Test2:需要: -  Compile-Package:需要: -  Test1  -  Test2  - 发布:要求: - 包#作业定义假设
队伍建立链子
项目{序列{build(compile)parallel {build(test1)构建(test2)}构建(package)build(发布)}} / * buildtype定义假定
等效Circleci工作流程
版本:2.1工作流程:构建部署:作业: -  Compile  -  Test1:Compile  -  Test2:需要: -  Compile-Package:需要: -  Test1  -  Test2  - 发布:要求: - 包#作业定义假设

有关Circleci概念的更多信息,请访问我们的概念管道文档页面。

组态

环境

Teamcity要求使用安装所需的操作系统和工具和相应的构建配置设置构建代理。在Circleci中,所有作业配置都有一个executer定义,而Circleci处理旋转给您的代理。查看我们的列表可用的执行者

.circleci / config.yml.
版本:2.1作业:my-mac作业:#执行程序定义acos:xcode:“11.3.0”#步骤定义步骤: - 结帐#...等。

脚步

在Teamcity中,从已定义的Runner类型列表中选择构建步骤(例如Visual Studio,Maven,Gradle等)。在Circleci上,步骤定义可以灵活地拍摄您将在终端或命令提示符中运行的任何命令。

随后,这种灵活性允许步骤适应任何语言,框架和工具。例如,一个Rails项目可以使用Ruby容器并运行Bundler.命令。一种node.js项目可以使用节点容器和NPM.命令。访问我们教程页面对于各种语言和框架示例。

队长步骤 等效的circleci步骤
项目{并行{build(gradle)#假设代理配置构建(maven)#假设代理已配置}}对象gradle:buildtype({name =“gradle”步骤{gradle {tasks =“special build”}}“)对象Maven:BuildType({name =“maven”步骤{maven {goals =“clean clate”}}})
版本:2.1工作流程:并行工作流程:作业: -  Gradle  -  Maven Jobs:Gradle:Docker: - 图片:Circleci / OpenJDK:11.0.3-JDK-Slower auth:用户名:MyDockerHub-User密码:$ DockerHub_Password#上下文/项目UI Env-var参考步骤: -  checkout#校验源代码 - 运行:name:clean和build命令:./gradlew clean build maven:docker: - 图片:Circleci / OpenJDK:11.0.3-JDK-Slaze Auth:用户名:MyDockerHub-User密码:$ dockerhub_password#上下文/项目ui env-var参考步骤: -  checkout#校验源代码 - 运行:name:clean and package命令:mvn干净包
队长步骤
项目{并行{build(gradle)#假设代理配置构建(maven)#假设代理已配置}}对象gradle:buildtype({name =“gradle”步骤{gradle {tasks =“special build”}}“)对象Maven:BuildType({name =“maven”步骤{maven {goals =“clean clate”}}})
等效的circleci步骤
版本:2.1工作流程:并行工作流程:作业: -  Gradle  -  Maven Jobs:Gradle:Docker: - 图片:Circleci / OpenJDK:11.0.3-JDK-Slower auth:用户名:MyDockerHub-User密码:$ DockerHub_Password#上下文/项目UI Env-var参考步骤: -  checkout#校验源代码 - 运行:name:clean和build命令:./gradlew clean build maven:docker: - 图片:Circleci / OpenJDK:11.0.3-JDK-Slaze Auth:用户名:MyDockerHub-User密码:$ dockerhub_password#上下文/项目ui env-var参考步骤: -  checkout#校验源代码 - 运行:name:clean and package命令:mvn干净包

构建模板/元跑步者

Circleci的相当于元跑步者和构建模板是Orbs的,它是可塑造的,可共同的配置。阅读更多关于他们的更多信息ORBS文件

复杂的建设

对于较大且更复杂的构建,我们建议在阶段转移,直到您对Circleci平台感到舒服。我们推荐此订单:

  1. 执行shell脚本和docker撰写文件

  2. 工作流程

  3. 伪影

  4. 缓存

  5. 触发

  6. 性能选择

资源