我们在我的团队中将 VSTS 用于 CI 和 CD,我们有 40 多个独立项目的存储库。但他们都必须在其构建步骤之一中运行相同的 PowerShell 脚本。
PowerShell 文件太大而无法作为内联脚本保存,因此我们需要将其保存在文件中。显然,我在每个存储库中都有一份 PowerShell 文件的副本。
问题:
现在每当我需要更新脚本时,我最终都会在每个存储库中更新它,目前已超过 40 个。
我认为应该有更好的方法。有什么方法可以将我的脚本放在一个单独的仓库(一个专门用于保存脚本的仓库)中,然后我在每个构建中使用它,因此我们需要更新它,我只需要更新一次。
最佳答案
有几个选项。
我的一般建议是将脚本作为包(NuGet 或其他)发布,并在应用程序构建期间恢复它。这允许消费者保持“固定”到已知良好、已知工作的版本,并按照适合他们的时间表进行更新。
另一种选择是为每个需要脚本依赖的存储库添加一个子模块,然后在构建过程中初始化子模块。
第三种选择是将共享脚本转换为 VSTS 构建任务或扩展。这已被广泛记录并且易于定位,因此我不会通过在此处包含执行此操作的说明来强调这一点。
关于powershell - 在多个 repo/Build 之间共享相同的 Powershell 脚本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49633981/