在多个存储库中共享github工作流的最有效方式是什么



我目前正在为我的团队设置一个带有Github操作的工作流。然而,我有十几个不同微服务的存储库,我不想简单地在每个存储库之间笨拙地复制.github/workflows/目录。如果我们需要更改工作流程,我必须在每个存储库之间复制所有更改。

我目前正在考虑的解决方案只是将我的工作流目录作为git子模块。(编辑:测试了这一点,当你的工作流目录是一个子模块时,github不会将其识别为包含操作(

有没有替代方案?是否存在当前的";最佳实践";管理这些工作流程?

GitHub最近为组织添加了工作流模板,请参阅"在组织内共享工作流模板">

至于替代方案,您可以编写自己的操作或shell脚本,这些脚本将处理尽可能多的任务。虽然您仍然需要自己处理工作流,但在极端情况下,它们可以被简化为结账和做每件事步骤。Shell脚本还有一个额外的优势,即只要支持长期选择的Shell,它们就可以在其他CI上工作。

最后,您可以创建包含所有工作流和机器人帐户的主存储库,它将自动将工作流中的所有更改推送到其他存储库,但这基本上是自动化您已经在做的事情。

我看到(几乎(所有提到的解决方案都在野外使用,有些地方会发生变化。已使用/计划使用其他CI pick-shell脚本的存储库。专注于一个生态系统的组织选择行动(要么是他们自己的,要么是社区创建的(。支持论坛上的一些人选择了自动推送,因为这在当时最接近于拥有模板。关于工作流模板的使用,我不多说——这个功能在几周前(撰写本文时(才公开,所以这并不令人惊讶。

最新更新