在 GitHub 组织中集中存储库操作

问题描述 投票:0回答:1

我们目前有一个组织,其中所有存储库都是模板存储库的副本。

这具有一定的初始文件夹/文件结构以及一些 git 操作,这些操作基本上读取调用它们的存储库并提交/推送某些内容。

所有操作都在单个自托管运行器下运行,无需拆分该负载(目前......)。

Current Setup

我在这里遇到的主要问题是如何将模板中完成的所有操作更改分配到所有其他不同的存储库(我们正在谈论接近 800 个小型存储库)。

因此,我正在考虑改变方法,让所有执行都在模板存储库中完成,通过提交(通过 API?)到“真实”存储库。没有使用任何环境,只有组织秘密和变量。

enter image description here

这样,模板存储库中的任何更改都可以直接用于其他存储库。

我还在考虑在模板存储库中添加一个新操作,该操作会将所有更改大量推送到所有存储库,但对我来说听起来太多了......

这样的设置正确吗?有更好的方法能够以相对简单的方式分发或让每个人都可以使用这些更改吗?

编辑: 一个基本示例是读取存储库中的标头或所有文件并在同一存储库下的summary.txt 文件中生成内容摘要的操作。

这样,summary.txt 文件将始终是最新的。

通过模板存储库,我可以确保新的存储库将获得最新的 yaml 版本。但现有的不会在 actions yaml 中进行任何进一步的更改。

所以基本上,由于存储库数量庞大,这是我面临的主要困难。

使用第二种方法时,将有一个包含完整代码集的 yaml,不同的存储库基本上会调用模板存储库中的操作(其中已经有最新的更改)

github github-actions
1个回答
1
投票

请勿复制工作流程文件。相反,请将它们纳入可重用的工作流程。这样,大部分逻辑就保留在共享的、可重用的工作流程中。

模板存储库包含调用可重用工作流程的工作流程文件。只有这些被复制到其他存储库。

理想情况下,可重用工作流程不带任何参数,而是从contexts获取所有信息。这避免了因为您想要将新参数传递给共享工作流程而必须更新每个存储库。

© www.soinside.com 2019 - 2024. All rights reserved.