最简单的方法是将 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 服务器获取值。
这篇文章有很好的解释 https://ultimateqa.com/tfs-vsts-and-azure-devops/#Sauce_Labs_with_Azure_DevOps
之前我也使用过Powershell,但是这种方法比较复杂,比较复杂:
- 在 Azure DevOps 管道中创建变量并为这些变量提供值。
- 创建一个 Powershell 脚本,您将在开始时运行该脚本来设置环境变量。This is https://github.com/saucelabs-training/demo-csharp/blob/master/setEnvironmentVariables.ps1我的时髦是什么样子的。
- 首先将这个 Posh 作为 CI 管道中的单独步骤运行,这将为用于运行管道的虚拟机设置环境变量。
这是另一个详细文章 https://www.ultimateqa.com/continuous-delivery-azure-devops/这可以帮助你。
根据请求,我还附上了使这成为可能的 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")