如何在管道中安装推送到 Azure Artifacts 的 PowerShell 模块?

How to install PowerShell module pushed to Azure Artifacts in Pipelines?

this article 之后,我设置了管道以将 PowerShell 模块推送到我的 Artifacts 提要。

我可以在我的本地机器上安装该模块,但我想知道如何在 Pipelines 中做同样的事情?添加 NuGet 源似乎是一个交互式过程,那么 Pipelines 如何添加 Artifacts 源作为源?

问题是我不想在 CI 环境中进行任何用户交互。

如果您使用的是自托管代理,您需要配置文件夹module权限,自托管代理运行通过服务帐户而不是个人帐户的cmd。

如果您使用的是托管代理,请添加任务权限 shell 并输入以下脚本以安装模块。

$patToken = "$(pat)" | ConvertTo-SecureString -AsPlainText -Force

$credsAzureDevopsServices = New-Object System.Management.Automation.PSCredential("xxx", $patToken)


Register-PSRepository -Name "PowershellAzureDevopsServices" -SourceLocation "https://pkgs.dev.azure.com/{Org name}/{project name}/_packaging/{feed name}/nuget/v2" -PublishLocation "https://pkgs.dev.azure.com/{Org name}/{project name}/_packaging/{feed name}/nuget/v2" -InstallationPolicy Trusted -Credential $credsAzureDevopsServices

Get-PSRepository

Find-Module -Repository PowershellAzureDevopsServices -Credential $credsAzureDevopsServices


Install-Module -Name Get-Hello -Repository PowershellAzureDevopsServices -Credential $credsAzureDevopsServices


Get-Module -ListAvailable Get-Hello

结果:

更新1

我们在注册电源外壳库时需要输入密码,方法是Register-PSRepository

这是一个认证问题,如果我们改变认证方式,也许我们不需要输入代码。

另外,我们也可以通过cmd安装模块Install-Module Get-Hello -Scope CurrentUser -Force