Azure devops 在Azure DevOps中重用PowerShell脚本

Azure devops 在Azure DevOps中重用PowerShell脚本,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我有一个PowerShell脚本,我想跨多个构建管道重用它。我的问题是,是否有一种方法可以在项目或组织范围内“存储”或“保存”我的PowerShell脚本,以便在其他构建管道中使用它?如果是,怎么做?我似乎找不到办法来做这件事。不过,这会非常方便。据我所见,不会 我探讨过的几个不同的选择是: 如果使用非托管代理,请将文件保存到生成服务器上。诚然,这并不能很好地扩展,但它比复制/粘贴整个脚本要好。我能够将这些脚本放到版本控制中,并通过它们自己的管道进行部署,因此这可能是一个扩展的解决方案(如果必

我有一个PowerShell脚本,我想跨多个构建管道重用它。我的问题是,是否有一种方法可以在项目或组织范围内“存储”或“保存”我的PowerShell脚本,以便在其他构建管道中使用它?如果是,怎么做?我似乎找不到办法来做这件事。不过,这会非常方便。

据我所见,不会

我探讨过的几个不同的选择是:

  • 如果使用非托管代理,请将文件保存到生成服务器上。诚然,这并不能很好地扩展,但它比复制/粘贴整个脚本要好。我能够将这些脚本放到版本控制中,并通过它们自己的管道进行部署,因此这可能是一个扩展的解决方案(如果必要的话)
  • 在此过程中克隆另一个具有这些共享脚本的存储库

我已经要求使用此功能一段时间了,但Azure DevOps团队似乎有更高的优先级。

根据SE脚本的大小,您可以创建包含powershell任务的任务组,并将脚本作为内嵌powershell。但这只适用于项目范围

我尝试的另一种尝试是创建包含powershell脚本的repo,将此repo作为子模块添加到您尝试构建的存储库中,然后从子模块文件夹调用脚本。但这只在使用git回购时有效


或者您可以创建一个包含脚本的自定义构建任务。

将powershell放在一个nuget软件包中,然后安装到不同的项目中如何?

我刚刚发现了YAML模板()

我认为在这种情况下它可能会对您有所帮助(取决于文件的大小),您可以在该模板yaml中放置一个内嵌powershell脚本,并在主yaml上重用它


文档非常简单。

现在可以在一个YAML管道中检出多个存储库。您可以将脚本放在一个存储库中,然后在任何其他存储库的管道中检出它。然后可以直接在管道工作区上引用脚本

更多信息