通过 Incredibuild 实现 GitLab 管道的精细化

使用并行 CI/CD 作业来提高工作效率并不新颖,这已然成为加快 CI 周期的标准方法,但是使用标准工具可以分发的内容是有限的,并行 CI/CD 作业不仅仅是在不同的机器上分配工作。

用超市的场景进行类比,构建就像一个购物车,放在后备箱里的环保袋是“作业”,袋子里的所有食物就是“进程”。其中一种加快结账速度的方法是,把所有的袋子分配给所有可用的结账柜台进行扫描。

但还有一种方法可以更快地完成扫描,这种方法更加细致,可以更快地完成任务,即从袋子中取出所有物品,并将其并行放置在无数个柜台上。如果这还不够细致,请设想,假如您家里的每个人都有一台扫描仪,当别人已经储存了您最喜欢的蛋白棒,您就会得到提示。

如何使用 Incredibuild 加速 GitLab

在我们的示例中,您的 CI(无论是 GitLab、Jenkins 还是其他平台)是并行化的第一级 —— 购物袋。Incredibuild 的作用是将每件物品从购物袋中取出,放入单独的扫描仪。Incredibuild 在第一级 CI 并行化完成时启动,将作业分解为微进程。然后,我们的 Build Cache 技术就像您的家用扫描仪,通过重新使用以前输出的构建工件,进一步节省时间。

Running GitLab Builds with Incredibuild

以下是如何在您的构建中实现此功能的快速指南。说明:此过程假设您已安装 Incredibuild 和 GitLab。

  1. 在 GitLab Runner 机器上安装 Incredibuild Agent。该 Agent 将充当 Incredibuild 的 Initiator。连接到同一 Incredibuild Coordinator 的其他 Agent 将充当 helpers。我们建议对 initiator 代理和所有 helper 代理是否连接到 Coordinator Monitor 中的同一协调器进行验证。
  2. 在 GitLab 项目根目录下创建一个名为 gitlab-build.bat 的文件,其内容如下:
    ECHO Executing BuildConsole command to build %PROJECT_NAME%
    BuildConsole.exe “%PROJECT_NAME%.sln” /Cfg=”%CONFIGURATION%|%PLATFORM%” /rebuild /showtime /showagent
    该批处理文件在管道执行期间触发。它将指示 Incredibuild 使用管道中列出的配置变量构建 VS 解决方案。
  3. 在 GitLab 环境中,编辑 .gitlab-ci.yml 文件。这是一个标准的 GitLab CI 声明文件。
    在脚本部分添加一个调用来运行 gitlab-build.bat 文件,如图所示:
    通过 Incredibuild 实现 GitLab 管道的精细化_第1张图片
    此时,所有的 GitLab 构建都将分发到您的 helper 代理中。

验证分布式构建

您可以在命令提示符中验证连接的 helper 代理是否参与构建过程。您可以在括号中看到哪台机器在运行这个任务,如下例所示:
通过 Incredibuild 实现 GitLab 管道的精细化_第2张图片您还可以在 GitLab Runner 机器(initiator 代理)上的代理 Build Monitor 中查看每个已执行任务的可视化细分。
通过 Incredibuild 实现 GitLab 管道的精细化_第3张图片

使用 Incredibuild 为您的 CI 管道提供支持

无论您使用什么 CI/CD 工具,Incredibuild 都可以帮助您更快地完成开发。通过将大量的任务分解为粒度级别,可以缩短构建时间、加快迭代速度,并确保开发团队的 CI 管道运行顺利,能够根据需要快速部署。

点击此处了解更多有关 Incredibuild 的 CI/CD 加速的信息,并获取试用 License!

你可能感兴趣的:(C++,CI,DevOps,gitlab,c++,ci)