从GitLab迁移

本文概述了如何从GitLab迁移到CircleCI。

ImagineX咨询提供的提示

源代码控制设置

如果你正在使用GitLab的SCM,你首先需要将你的源代码迁移到GitHub或BitBucket。有关如何导入代码的详细信息,请参阅以下内容:

GitHub的金宝博娱乐官网网址企业

以下是使用git命令行工具将GitLab repo导入GitHub企业所需的步骤:金宝博娱乐官网网址

  1. 创建你的GitHub的企业实例空库。金宝博娱乐官网网址

  2. 在本地机器上创建GitLab.com存储库的裸克隆,获取所有远程标签(refs/tags/*),并将所有远程分支头(refs/heads/\*)直接复制到相应的本地分支头:

    GIT中克隆git@gitlab.com:[所有者] / [回购名称]的.git --bare
  3. 添加您的GitHub企业资源库在金宝博娱乐官网网址本地克隆远程引用:

    cd [repo-name] git远程添加企业git@[主金宝博娱乐官网网址机名]:[所有者]/[repo-name].git
  4. 按当地所有引用(参考文献/ \ *)到你的远程GitHub的企业资源库:金宝博娱乐官网网址

    混帐推企业--mi金宝博娱乐官网网址rror

如果您需要导出其他GitLab文物,请遵循GitLab文档出口项目

将代码导入GitHub或BitBucket后,可以在CircleCI中使用入门指南

构建配置

如果您正在使用GitLab的CI / CD,您将需要迁移构建配置。在GitLab,构建配置在一个名为文件中定义.gitlab-ci.yml在源代码存储库的根目录中。如果使用shell脚本执行构建,则可以在CircleCI中重用这些脚本。

首先,创建一个CircleCI构建配置文件。在你的源代码库的根目录下创建一个命名的文件夹.circleci并在该文件夹中创建一个文件config.yml。接下来,遵循CircleCI文档在这里来了解如何配置.config.yml文件。

该GitLab和CircleCI配置会有所不同。这可能是有帮助的两个GitLab和CircleCI参考文档打开并排侧用的构建步骤转换的帮助:

有些差异是值得呼唤:

定义执行单个构建步骤的作业

GitLab CircleCI
job1:脚本:“execute-script-for-job1”
工作:JOB1:步骤: - 结帐 - 运行:“执行脚本换JOB1”
GitLab
job1:脚本:“execute-script-for-job1”
CircleCI
工作:JOB1:步骤: - 结帐 - 运行:“执行脚本换JOB1”

指定泊坞窗图像用于工作

GitLab CircleCI
job1:形象:节点:10
工作:JOB1:泊坞窗: - 图像:节点:10
GitLab
job1:形象:节点:10
CircleCI
工作:JOB1:泊坞窗: - 图像:节点:10

定义一个多阶段构建管道

作业1和作业2同时运行。一旦他们完成,作业3上运行。一旦作业3完成后,JOB4运行。

GitLab CircleCI
JOB1:第一阶段:构建脚本:请编译依赖作业2:阶段:构建脚本:请构建工件作业3:阶段:测试脚本:请测试作业4:阶段:部署脚本:请部署阶段: - 构建 - 测试 - 部署
版本:2工作:job1:步骤:-付款-运行:构建依赖job2:步骤:-运行:构建构件job3:步骤:-运行:使测试job4:步骤:-运行:使部署工作流:版本:2工作:- job1 job2 job3:要求:- job1 job2 job4:要求:- job3
GitLab
JOB1:第一阶段:构建脚本:请编译依赖作业2:阶段:构建脚本:请构建工件作业3:阶段:测试脚本:请测试作业4:阶段:部署脚本:请部署阶段: - 构建 - 测试 - 部署
CircleCI
版本:2工作:job1:步骤:-付款-运行:构建依赖job2:步骤:-运行:构建构件job3:步骤:-运行:使测试job4:步骤:-运行:使部署工作流:版本:2工作:- job1 job2 job3:要求:- job1 job2 job4:要求:- job3

执行在多个平台上工作

GitLab使用标签来标识构建亚军。CircleCI提供所有主要的操作系统和泊坞窗,必须配置明确设置。请参阅我们的执行人文档为更多的信息。

GitLab CircleCI
osx job: tags: - osx script: - echo“Hello, $USER!”
工作:Ubuntu的工作:机:图片:Ubuntu的1604:201903-01步骤 - : “你好!,$ USER”  - 结账运行回声OSX作业:MacOS的:Xcode中:11.3.0步骤: - 结帐 - 运行: “你好!,$ USER” 回声
GitLab
osx job: tags: - osx script: - echo“Hello, $USER!”
CircleCI
工作:Ubuntu的工作:机:图片:Ubuntu的1604:201903-01步骤 - : “你好!,$ USER”  - 结账运行回声OSX作业:MacOS的:Xcode中:11.3.0步骤: - 结帐 - 运行: “你好!,$ USER” 回声

缓存依赖

GitLab CircleCI
图片:节点:在作业之间最新#缓存模块缓存:关键:$ {} CI_COMMIT_REF_SLUG路径: -  node_modules / before_script: -  NPM安装test_async:脚本: - 节点./specs/start.js
工作:test_async:步骤: -  restore_cache:关键:源-V1  -  {{校验 “的package.json”}}  - 结算 - 运行:NPM安装 -  save_cache:关键:源-V1  -  {{校验 “的package.json”}}的路径: -  node_modules  - 运行:节点./specs/start.js
GitLab
图片:节点:在作业之间最新#缓存模块缓存:关键:$ {} CI_COMMIT_REF_SLUG路径: -  node_modules / before_script: -  NPM安装test_async:脚本: - 节点./specs/start.js
CircleCI
工作:test_async:步骤: -  restore_cache:关键:源-V1  -  {{校验 “的package.json”}}  - 结算 - 运行:NPM安装 -  save_cache:关键:源-V1  -  {{校验 “的package.json”}}的路径: -  node_modules  - 运行:节点./specs/start.js

对于更大,更复杂的生成文件,我们建议分阶段构建步骤,直到你得到舒适的CircleCI平台移动过来。我们推荐顺序如下: