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

2024-02-02

我有一些测试自动化代码,可以从本地计算机上存储的环境变量中读取一些值,如下所示:

Environment.GetEnvironmentVariable("SAUCE_USERNAME", EnvironmentVariableTarget.User);

我尝试使用 Azure Pipelines 在管道执行期间创建此变量,然后在我的测试自动化代码中读取它。使用 YAML 文件。

我在 Azure Pipeline 的 VS Test 步骤中读取此变量。因此,如果我设置该变量,它必须在 Azure Pipeline 的生命周期内有效。

我尝试使用文档但没有成功。

也尝试了下面的代码,但失败并出现以下错误:

azure-pipelines.yml(行:39,列:1,Idx:1252)-(行:39,列:1, Idx: 1252): 扫描简单键时,找不到预期的“:”。

# Create a secret variable
- powershell: |
Write-Host '##vso[task.setvariable variable=sauce.userName;issecret=true]abc'

# Attempt to output the value in various ways
- powershell: |
# Using an input-macro:
Write-Host "This works: $(sauce.userName)"

# Using the env var directly:
Write-Host "This does not work: $env:SAUCE_USERNAME"

# Using the mapped env var:
Write-Host "This works: $env:SAUCE_USERNAME"
env:
SAUCE_USERNAME: $(sauce.userName)

最简单的方法是将 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,但是这种方法比较复杂,比较复杂:

  1. 在 Azure DevOps 管道中创建变量并为这些变量提供值。
  2. 创建一个 Powershell 脚本,您将在开始时运行该脚本来设置环境变量。This is https://github.com/saucelabs-training/demo-csharp/blob/master/setEnvironmentVariables.ps1我的时髦是什么样子的。
  3. 首先将这个 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")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Azure DevOps Pipeline中设置和读取用户环境变量? 的相关文章

随机推荐

  • 如何修复 Bootstrap 4 中意外的列顺序?

    我正在尝试制作如下所示的布局 On xs设备 我希望顺序是第一 第二 第三 我的示例代码是
  • FUNCTION 数据库名称.SHA2 不存在

    我在 godaddy 上托管我的域名 并尝试对数据库中的密码进行哈希处理 但是 它会抛出错误 MySQL said 1305 FUNCTION dbname SHA2 does not exist 这是我用来将数据插入数据库的命令 inse
  • JQuery 中的网络图/流程图[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 TRUE/FALSE Numpy 数组转换为 OpenCV Umat for HoughLines

    我有一个 Numpy 灰度数组 我将其设置为在达到一定阈值后 该单元格的值为 1 其余为 0 我想将其输入 OpenCV 的HoughLines 函数 但它需要一个 8 位 单通道二进制源图像 我如何转换它以便它接受参数 gray np l
  • Jupyter 认证问题

    我在连接到 AWS 上的 Jupyter 笔记本实例时遇到问题 这有点超出我的掌控范围 所以任何帮助将不胜感激 ubuntu ip 172 31 20 132 export XDG RUNTIME DIR ubuntu ip 172 31
  • 在插入语句中使用强制转换

    我正在将一些原始数据从 Excel 插入到 MS SQL 2005 中的表中 其中一些数据的格式不正确 即金额列的格式为数字 12345 而我需要像 123 45 这样 所以我使用这个CAST TRANSACTION HISTORY AMO
  • Docker Nginx:在上游找不到主机

    我的 docker 应用程序在 aws EC2 实例中运行 目前我正在尝试使用 Nginx 将应用程序映射到外部 IP 地址 这是我正在运行的容器的快照 我的测试应用程序是一个相当简单的应用程序 显示静态 html 网站 我使用以下命令部署
  • VBA 编辑器自动删除行尾的空格

    当我暂停打字四分之一秒时 有没有办法说服 Excel 中的 VBA 编辑器停止自动格式化行以删除末尾的空格 我遇到了这个确切的问题 以下内容对我有用 单击 Microsoft Office 按钮 然后单击 Excel 选项 单击加载项类别
  • 如何将heroku key添加到git才能正常工作

    我用的是windows7 我已经使用创建了heroku APP heroku create loka xxxx 它将使用 git 链接为我创建一个应用程序 email protected cdn cgi l email protection
  • 如何使用 ExpressionEvaluatingRequestHandlerAdvice 移动文件

    在 ExpressionEvaluatingRequestHandlerAdvice 的手册中 它明确指出 A typical use case for this advice might be with an
  • symfony 4:如何从 RootDir 获取“/public”

    我的下面有一张图片public folder 如何在 symfony 4 中获取我的图像目录 在 symfony 3 中 它的等价物是 webPath this gt get kernel gt getRootDir web 这是一个不好的
  • MVCiteMapProvider 的资源文件

    我正在使用 MVCSiteMapProvider 为我的应用程序生成具有本地化功能的菜单 只要菜单的资源文件位于 App GlobalResources 文件夹中 我的程序就可以正常工作 当我将资源移至另一个文件夹时 出现错误提示无法找到资
  • 如何在 GraphQL 中正确链接 useQuery 和 useMutation?

    我有 useQuery 和 useMutation 从react apollo hooks 背靠背 我希望能够使用 useQuery 的返回值作为 useMutation 的变量 目前 useQuery 的值没有及时返回给变量 导致变量未定
  • 如何在命令行上覆盖 .hgrc 选项?

    在与 Mercurial 进行比较时 我通常想忽略空白变化 如果我将其设置为默认值ignorews true在我的 hgrc 的 diff 部分中 似乎没有办法强制在命令行上的单个调用中显示空白更改 我缺少什么 FWIW 相关命令行选项都不
  • iPhone 平台:字节顺序(检测和交换)

    我正在 iPhone 上进行一些字节序敏感的文件操作 该环境中是否有标准宏或 defines 指示本机字节序并在必要时提供交换 我知道我可以提前检查并为这个特定的架构做正确的事情 但想知道是否有更干净的方法来做正确的事情 文件格式是小端 如
  • Angular2:如何处理异步图像(blob)请求?

    我正在尝试通过安全 API 请求图像 目前 我可以使用以下内容 请参阅下面我使用的所有资源 import AssetsService from services AssetsService import Component from ang
  • 如何在 Websphere 中启用 JMX?

    我想使用 JConsole 来监视我的 Websphere 应用程序 但我不知道如何启用 JMX 以下信息适用于 Windows 上的 Websphere 6 1 首先 连接到 MBean 服务器的神奇 URL 是 service jmx
  • 在 Go 中使用 http 包时如何检索最终 URL 目标?

    大多数站点在请求期间重定向到另一个 URL 例如 http example com might可能会重定向到http mobile example com 有没有办法检索最终目的地 的情况下cURL 他们称之为effective URL 例
  • Spring Boot 项目因架构验证而无法运行:缺少序列 [hibernate_sequence]

    当我尝试运行 Spring Boot 和 Hibernate 应用程序时 我发现它失败的原因是 org hibernate tool schema spi SchemaManagementException Schema validatio
  • 如何在Azure DevOps Pipeline中设置和读取用户环境变量?

    我有一些测试自动化代码 可以从本地计算机上存储的环境变量中读取一些值 如下所示 Environment GetEnvironmentVariable SAUCE USERNAME EnvironmentVariableTarget User