从Github操作迁移

本文概述了如何从Github操作迁移到CircleCI。

为什么要迁移到CircleCI?

CircleCI是一流的CI工具。CI / CD一直是我们自公司成立8年前专业化。188bet娱乐官网在这些特征的顶部,你会期望从任何CI / CD工具,我们与众不同的是下面的工作效率提升功能:

  1. 高级高速缓存- 在之上正常的依赖缓存, CircleCI提供特定于码头工人的图像层。这意味着Docker映像的后续构建将运行得更快,从而节省更多提交部署工作流的时间。

  2. SSH进入构建- CircleCI提供的能力,安全地SSH到构建环境中尾日志,处理文件工作,并直接与交互的环境。这对于调试失败构建非常有用的。

  3. 资源类- 您可以使用各种不同的大小的执行者在我们的平台上,非常适合根据节点上较轻或较重的工作负载进行调整。

  4. 测试的并行性-我们的平台不仅提供并发作业执行同时还具备分割并行环境之间的测试。您可以通过大幅削减构建时间在不同容器之间分割工作负载

我们还有其他不同的特性使我们的解决方案与众不同。注册今天免费帐户并尝试我们出去,或者如果你有兴趣在CircleCI为您的团队,联系我们的销售团队建立审判。

概念

乔布斯和工作流程

无论Github上操作和CircleCI份额类似的概念围绕“就业”和“工作流程”。工作流是连接工作,这又由命令以实现任务原子(例如,“运行单元测试”或“构建泊坞图像”)的端部到端流动。

CircleCI的主要不同之处在于配置语法,即在单独的部分中设置工作流和作业依赖项,而不是在作业中设置内联。

Github上 CircleCI
name: My GitHub Actions Workflow on: [push] jobs: job_1:运行上:ubuntu-最新步骤:# job steps job_2: needs: job_1运行上:ubuntu-最新步骤:# job steps
工作:job_1:执行人:我-Ubuntu的高管步骤:#作业步骤job_2:执行人:我-Ubuntu的高管步骤:#作业步骤的工作流程:my_workflow:工作: -  job_1  -  job_2:要求: -  job_1

行动与球体

“操作”在Github的可重复使用的命令或任务到任务中运行。然而,它们对于一个泊坞容器内部执行写入或编码为使用JavaScript各个步骤。这增加了额外的工作,并限制在它们可应用的范围。

CircleCI提供了类似的功能球体。主要的区别是,CircleCI球体只是包装,可重复使用的YAML,这样你就可以重复使用orbify工作,执行人,或命令,并使用它们不过你在任何你的工作或工作流程的认为合适的。

Github上提供浏览他们的市场行为的;CircleCI有宝珠注册以及一个集成的页面含有大量的认证,合作伙伴和社区球体/集成。

跑步者和执行者

在GitHub上,你可以指定你的构建在Linux,MacOS的运行,和Windows环境通过运行上在YAML关键,如果你想运行在一个容器中任何东西,你指定一个额外的容器键。

在CircleCI,你有环境(称为执行人)的相同选择,与其他选项和功能的码头工人。

对于每个执行器类型,你有不同的版本,随后将安装基本软件的各种版本的选择。

请参阅下一节中的表来比较配置。

配置比较

Github配置 CircleCI配置

指定执行环境。虽然容器执行在Github的另外指定,
码头工人是它的自己的阶级执行人在CircleCI。

#选择操作系统运行上:Ubuntu的最新#或窗口等#如果在容器容器中运行步骤:图像:OpenJDK的:11.0,JDK
#泊坞窗(容器)执行人泊坞窗: - 图像:circleci / OpenJDK的:11.0-jdk的身份验证:用户名:mydockerhub用户口令:$ DOCKERHUB_PASSWORD#背景/项目UI ENV-VAR参考#Linux操作系统Ubuntu执行人机:真#MACOS执行人的MacOS:Xcode中:11.3.0#的Windows执行人#注:Orb的需要申报。见文档执行人:胜/ vs2019

指定依赖/服务。在CircleCI后先指定的所有图像处理作为依赖

job: build: run -on: ubuntuo -latest #主容器容器:image: openjdk:11.0-jdk #依赖服务服务:postgres: image: postgres:10.8 env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres
工作:构建:码头工人:#主要执行人——形象:circleci / openjdk: 11.0 jdk身份验证:用户名:密码:mydockerhub-user DOCKERHUB_PASSWORD # UI env-var参考上下文/项目#美元依赖服务(s) -形象:postgres: 10.8身份验证:用户名:密码:mydockerhub-user DOCKERHUB_PASSWORD #美元上下文/项目UI env-var参考环境:POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres

指定步骤运行在一个工作。功能相似,语法不同。

工作:构建:#亚军配置这里步骤: - 名称:建立与摇篮运行:./gradlew构建
工作:构建:#执行此配置步骤: - 运行:名称:建立与摇篮命令:./gradlew构建

使用共享任务(操作为Github上,球体为CircleCI)。在CircleCI,你在顶层声明球体
然后在配置是指他们的名字,在概念上与Python或JavaScript导入类似。

工作:构建:#亚军配置这里步骤: - 名称:斯莱克通知用途:rtCamp/action-slack-notify@v1.0.0 ENV:SLACK_COLOR: '#32788D' SLACK_MESSAGE: '测试通过' SLACK_TITLE:斯莱克通知GA SLACK_USERNAME:鲍比SLACK_WEBHOOK:#网络挂接
宝珠:松弛-ORB:circleci/slack@3.4.0工作:构建:#执行此配置步骤: - 松弛-ORB /通知:颜色: '#32788D' 消息:测试通过标题:测试懈怠球AUTHOR_NAME:鲍比网络挂接:#网络挂接

在工作流中使用条件步骤。CircleCI提供台阶基本条件(例如,on_success(默认)
on_success,ON_FAILURE)以及有条件的步骤基于参数。我们还有有条件的工作
当前有条件的、参数化的工作流和管道在预览

作业:build: #环境配置这里步骤:- name:我的失败步骤运行:echo“失败步骤”if: Failure () - name:我的始终步骤运行:echo“始终步骤”if: Always ()
运行:name: My Failure Step command: echo“Failed Step”when: on_fail -运行:name: My Always Step command: echo“Always Step”when: Always

有关CircleCI的更多配置示例,请访问我们的教程示例项目页面。

由于Github动作和CircleCI之间的配置是类似的,迁移作业和工作流应该是相当简单的。然而,为了获得最佳的成功机会,我们建议按照以下顺序迁移项目: