乐趣区

关于git:在OneOSLite上学习搭建CICD流程GitLab篇

1. 让 GitLab CI/CD 做什么

嵌入式软件开发畛域高频应用的开发语言是 C 语言,在大型项目开发中,咱们往往会有格局审查、编译审查的需要。如果能借助GitLab 平台实现代码的格局和编译问题审查,将会极大进步合入代码的规范性,把控新代码对原有代码的影响,进步代码整体品质。

本文将手把手教学如何借助 CI 帮咱们做代码格局审查、编译审查。

2.GitLab CI/CD 疾速搭建

2.1 VC Code 设置

  1. VS Code 设置为保留时主动格式化。

  1. 在代码根目录下搁置 .clang-format.clang-format-ignore文件。

.clang-format文件是代码格式化和格局查看的配置文件,能够从 Clang-Format 官网网页下载到模板再依据本人的需要调整,语法详见链接。编辑好了 .clang-format 这个文件,置于代码根目录,用 VS Code 编辑完代码后执行保留操作,保留的文件将主动按这个文件的格局标准来格式化代码。

.clang-format-ignore文件是用于配置在 CI 中疏忽代码格局查看的文件或文件夹。

2.2 GitLab 配置

前提:你曾经在 GitLab 有代码仓库,并且你是仓库的 OwnerMaintainer身份。

如何让 GitLab CI/CD 为咱们做代码格局的审查和编译审查呢,总结起来就五点:

  1. 仓库根目录配置 .gitlab-ci.yml 文件;
  2. 仓库中配置代码审查的脚本、clang-format格局审查工具和编译脚本;
  3. 配置一个用于编译的 MDK 工程;
  4. GitLab 公共仓库配置一个Runner(个别是服务器);
  5. GitLab 集体仓库配置一个Runner(个别是本机);
  6. Runner环境配置。

.gitlab-ci.yml能够了解为流水线文件,应用 YAML语法形容,.gitlab-ci.yml文件形容了你要做什么事件。本需要包含代码的拉取、代码格局审查和代码编译。把 .gitlab-ci.yml 放到远端分支的根目录,你每次 pushMerge代码到 Git 近程仓库时,Runner都会主动触发 CI pipeline,去执行.gitlab-ci.yml 流水线文件中形容的事。

Runner很好了解,就是一个用来跑仓库代码的格局审查与编译审查的机器,个别公共仓库会是一台服务器,集体仓库会是本机。

3. 具体配置流程

3.1 .gitlab-ci.yml文件

.gitlab-ci.yml如下:

文件形容了代码更新形式和两个 Job。一个Jobcheck,做代码格局审查;另一个 Jobbuild,做代码编译。script形容的是执行命令,即在 Runner 中执行的命令。tags形容的是 Runner 的标识,与 Runner 注册时的设置统一,用于在 CI pipeline 中顺利找到该主机。

代码格局审查的命令:python .workflow/ci/format_check/run-clang-format.py --clang-format-executable .workflow/ci/format_check/clang-format.exe -r components/。命令中调用了 Python 脚本和 clang-format.exe 执行文件,并指定了要查看的文件夹门路。

代码编译的命令:.workflow/ci/build/build_keil.bat,调用了指定门路下的编译脚本。

3.2 脚本及工具配置

在代码仓库 .workflow > ci 门路下的不同文件夹中搁置格局审查的脚本、clang-format格局审查工具、编译脚本:

format_check文件夹搁置 run-clang-format.py 格局审查脚本和 clang-format.exe 执行文件,clang-format.exe版本为12.0.1

build文件夹搁置 build_keil.bat 编译脚本:

3.3 编译工程

在代码仓库 .workflow > ci > projects_compile 门路下搁置一个或多个用于编译的 MDK 工程,通过一个或多个工程的配置来铺盖所有代码。

3.4 公共仓库配置 Runner

首先须要找到一台 windows 主机。

  1. 在零碎中的某处创立一个文件夹,例如:F:\OneOS_Operate_System\GitLab-Runner
  2. 下载 64 位或 32 位二进制文件并将其放入创立的文件夹中。重命名为gitlab-runner.exe(可选)。
  3. 注册Runner

    关上 Windows PowerShell,进入F:\OneOS_Operate_System\GitLab-Runner 门路运行 ./gitlab-runner.exe register 命令:两头阶段须要输出 URLTokenRunner 的形容、Runner的标识、shell。其中 Runner 的标识须要与 .gitlab-ci.yml 文件中的 tags 形容的 Runner 的标识统一,否则无奈找到指定的Runner

    其中的 URLToken则是来自代码仓库的 Runner 设置中:

  4. 批改config.toml

    注册完 Runner 后,能够在 F:\OneOS_Operate_System\GitLab-Runner 文件夹下看到 config.toml 文件,关上并批改一处:shell = "pwsh"shell = "powershell"

  5. 启动Runner

    持续在 Windows PowerShell 中顺次执行命令 .\gitlab-runner.exe install.\gitlab-runner.exe start就能够启动Runner

    启动胜利后能够看到 Runner 下多了一个设施,设施标识为 win_ci,因而.gitlab-ci.yml 文件中的 tags 也应该是win_ci

3.5 集体仓库配置 Runner

集体仓库的 Runner 搭建在本机,配置办法根本等同于公共仓库的 Runner 配置办法,惟一差异是注册 Runner 时的 URLToken 须要从集体仓库的中获取。注册时输出的 Runner 标识与公共仓库的 Runner 标识保持一致。

3.6 Runner 环境配置

要想让 Runner 胜利的跑格局审查命令:python .workflow/ci/format_check/run-clang-format.py --clang-format-executable .workflow/ci/format_check/clang-format.exe -r components/ 和代码编译的命令:.workflow/ci/build/build_keil.bat还须要对 Runner 做肯定的配置(服务器和本机都必须要):

  1. 装置python
  2. 装置MDK v5
  3. 增加零碎环境变量(PythonMDK 都要确保增加)

3.7 重启 Runner

输出命令:./gitlab-runner.exe restart来重启 Runner,首次服务器和本机都要执行此命令重启Runner。胜利后就不必在执行此命令,主机即便重启也能够失常应用Runner 不须要做其它。

3.8 触发

集体仓库的 push 或从集体仓库向公共仓库提 Merge 申请会触发流水线,会对整个代码仓库进行代码格局审查和编译,任何一项不通过将无奈合入公共仓库。

4. 关注 && 分割

gitee:https://gitee.com/cmcc-oneos/OneOS-Lite

docs:https://oneos-lite.com/

退出移动版