且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在Azure DevOps管道中设置和读取用户环境变量?

更新时间:2023-11-04 12:23:52

最简单的方法是将Azure DevOps(ADO)环境变量值传递到密钥中,如下所示:

- task: DotNetCoreCLI@2
  displayName: 'Run tests'
  env:
    SAUCE_USERNAME: $(sauceUsername) #this will store the value from 'sauceUsername' into SAUCE_USERNAME
    SAUCE_ACCESS_KEY: $(sauceKey)

如果您尝试

,则显示或使用值将起作用
- bash: echo $(SAUCE_USERNAME) # will output our username stored in SAUCE_USERNAME env variable

如果您在代码中引用SAUCE_USERNAME,则代码将从Azure服务器获取该值。

This article has a good explanation

之前我也用过Powershell,但是这个方法比较复杂:

  1. 在Azure DevOps管道中创建变量,并为这些变量提供值。
  2. 创建一个Powershell脚本,您将在开始时运行该脚本来设置您的环境变量。This is我的POSH的外观。
  3. 开始时将此POSH作为CI管道中的单独步骤运行,这将设置用于运行管道的VM的环境变量。

这是另一个detailed article可能对您有帮助的

根据请求,我还附加了使此成为可能的PowerShell代码。

Param(
[string]$sauceUserName,
[string]$sauceAccessKey,
[string]$sauceHeadlessUserName,
[string]$sauceHeadlessAccessKey
)
Write-Output "sauce.userName that was passed in from Azure DevOps=>$sauceUserName"
Write-Output "sauce.accessKey that was passed in from Azure DevOps=>$sauceAccessKey"
Write-Output "sauce.headless.userName that was passed in from Azure DevOps=>$sauceHeadlessUserName"
Write-Output "sauce.headless.access.key that was passed in from Azure DevOps=>$sauceHeadlessAccessKey"

[Environment]::SetEnvironmentVariable("SAUCE_USERNAME", "$sauceUserName", "User")
[Environment]::SetEnvironmentVariable("SAUCE_ACCESS_KEY", "$sauceAccessKey", "User")
[Environment]::SetEnvironmentVariable("SAUCE_HEADLESS_USERNAME", "$sauceUserName", "User")
[Environment]::SetEnvironmentVariable("SAUCE_HEADLESS_ACCESS_KEY", "$sauceAccessKey", "User")