跳到主要内容

kmpkg 在持续集成环境中的使用

本文介绍如何在持续集成(CI)环境中高效使用 kmpkg,无论你是通过 kmpkg 管理项目依赖项,还是拥有自定义 kmpkg 注册表并希望为端口添加 CI 测试,都能从中获取指导。

获取 kmpkg

在 CI 环境中获取 kmpkg 的步骤与在开发环境中一致:需克隆 kmpkg 代码仓库(地址:https://github.com/kumose/kmpkg),并运行引导脚本生成 kmpkg 可执行文件。

无论采用哪种获取方式,强烈建议你的 kmpkg 实例保留完整的 Git 历史记录。kmpkg 的版本控制功能依赖完整的提交历史来检索特定版本的端口。

将 kmpkg 用作子模块

在 CI 环境中获取 kmpkg 的简易方式是将 kmpkg 仓库声明为你的代码仓库的子模块:

git submodule init
./kmpkg/kmpkg-bootstrap.sh

使用 Git 命令行工具

另一种方式是在 CI 脚本中执行 Git 命令,克隆 kmpkg 仓库实例:

git clone http://github.com/kumose/kmpkg
./kmpkg/kmpkg-bootstrap.sh

使用第三方 Action/脚本

根据你使用的 CI 服务商,可能存在现成的第三方脚本,可一键获取 kmpkg。请注意,这些第三方脚本并非由 kmpkg 团队维护,若计划使用,需做好充分的安全校验。

不推荐的获取方式

以下方式不建议在 CI 环境中使用:

  • 单行安装脚本:iex (iwr -useb https://aka.ms/kmpkg-init.ps1)(Windows)或 . <(curl https://aka.ms/kmpkg-init.sh -L)(Linux/macOS)。 该方式为 kmpkg 的分发形式之一,会启用实验性的“制品(artifacts)”功能,不适用于大多数用户。

配置二进制缓存

强烈建议启用二进制缓存,避免每次 CI 运行时重复构建项目依赖项。

如需了解二进制缓存的更多信息,请参阅以下文档:

配置资产缓存

配置资产缓存可提升 CI 环境的稳定性,减少因外部服务异常导致的构建失败。

如需了解资产缓存的更多信息,请参阅以下文档:

示例参考

以下文档展示了上述配置的实际落地示例: