我可以在另一个任务中使用一个PowerShell任务中的功能吗?

时间:2019-09-24 11:26:10

标签: azure-devops azure-pipelines

我正在构建一个部署管道,我想导入一个功能模块,以便可以在不同的步骤中重复使用它们。有没有一种方法可以在一个任务中定义功能,然后在另一个任务中使用它们?

如果我必须使用模块来实现可重用性,那么应该在哪里放置该模块,以便管道能够找到它?

1 个答案:

答案 0 :(得分:2)

管道中的每个PowerShell Task是一个不同的过程,因此它将所有上下文信息从一个任务释放到另一个任务。
但是,在整个管道作业执行期间,保留在磁盘和环境变量上的内容会保留。
因此,如果您的模块在PowerShell画廊中可用,则可以Install-Module modulename -Scope CurrentUser为当前用户安装该模块(您不能在托管代理上全局安装模块)。
然后,只要导入它,便可以在每个步骤中使用它。
如果您的功能不是图库中可用的模块,则可以将它们完美地存储在存储库中(假设在scripts文件夹中)并按原样执行。
如果要在多个存储库中使用它们,并且希望避免重复脚本,则可以将它们存储在专用存储库中,并在管道中使用resources