插件如何独立构建以实现 CI/CD?

方法还挺多的,普通人会用到的就至少有下面这两种:

方法一:使用 Yakumo

如果你的项目为 工作区 形式,那么使用 Yakumo 是最快捷的方法。

如果你的 repo 有这些特点,那么你的项目就是一个工作区:

  1. 顶层有 koishi.ymlyakumo.yml
  2. 顶层有 packages 文件夹

需要注意,如果你的顶层有 external 文件夹 但没有 packages 文件夹,那么的当前的项目是一个 机器人(整合包) 而不是一个插件。你的项目里已经有了完整的构建你的机器人的脚本,你无需进行任何操作。

在 CI 中,你只需要做这些事情:

  1. checkout(下载你的项目
  2. setup-node(安装 Node
  3. 运行 yarn && yarn build
  4. 对所有生成的插件运行 yarn pack,例如直接运行 yarn workspaces foreach -Ap pack
  5. 你的所有插件已经打包完成,收集这些包即可

方法二

如果你的项目不是工作区,那么你只需要运行 tsc -b 即可构建插件。在此之前,确保插件 devDep 了 typescript 和 koishi。可以用 yarn add -D typescript koishi 快速确保。

  1. checkout(下载你的项目
  2. setup-node(安装 Node
  3. 运行 yarn && yarn tsc -b && yarn pack
  4. 你的插件已经打包完成,收集即可

除此之外,其他方法不推荐普通人使用,但遇到有需要的情况下可以使用:

方法三

3 个赞