powershell - 在多个 repo/Build 之间共享相同的 Powershell 脚本文件

标签 powershell build continuous-integration repository azure-devops

我们在我的团队中将 VSTS 用于 CI 和 CD,我们有 40 多个独立项目的存储库。但他们都必须在其构建步骤之一中运行相同的 PowerShell 脚本。

PowerShell 文件太大而无法作为内联脚本保存,因此我们需要将其保存在文件中。显然,我在每个存储库中都有一份 PowerShell 文件的副本。

问题:

现在每当我需要更新脚本时,我最终都会在每个存储库中更新它,目前已超过 40 个。
我认为应该有更好的方法。有什么方法可以将我的脚本放在一个单独的仓库(一个专门用于保存脚本的仓库)中,然后我在每个构建中使用它,因此我们需要更新它,我只需要更新一次。

最佳答案

有几个选项。

我的一般建议是将脚本作为包(NuGet 或其他)发布,并在应用程序构建期间恢复它。这允许消费者保持“固定”到已知良好、已知工作的版本,并按照适合他们的时间表进行更新。

另一种选择是为每个需要脚本依赖的存储库添加一个子模块,然后在构建过程中初始化子模块。

第三种选择是将共享脚本转换为 VSTS 构建任务或扩展。这已被广泛记录并且易于定位,因此我不会通过在此处包含执行此操作的说明来强调这一点。

关于powershell - 在多个 repo/Build 之间共享相同的 Powershell 脚本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49633981/

相关文章:

.net - VSTS 成功构建后,如何在电子邮件中发送代码覆盖率和测试(失败和通过)计数?

powershell - 在Powershell脚本中将csv/文本文件中的$替换为$

powershell - 部署逻辑应用集成帐户时出现 PowerShell 错误

powershell - 有没有办法警告远程计算机等待重启并让我的脚本等待重启完成?

build - 找不到要作为输入文件资源嵌入的概念架构节点

ios - 为什么我不能为某些特定的 iOS 模拟器构建?

testing - 部署后自动对应用程序中的所有网页进行烟雾测试

Jenkins 服务调用失败 > 服务器错误?

f# - 哪种工具链适合需要使用 mono 构建 C#/F# 项目的 Java 开发人员?

powershell - Posh-ssh 是否不适用于 Windows 任务计划程序