azure-devops - 如何在 Azure 构建管道中使用 Powershell 修改流程变量
问题描述
我的管道中有一个测试步骤。我希望该步骤在计划运行时运行所有测试,但仅影响手动或门控运行的测试。为此,我将runOnlyImpactedTests
值链接到流程变量,并尝试使用 Powershell 修改其值。
我可以读取变量,但无法更改它。我有两个问题,但首先,这是 PS 脚本
Write-Host "a ${Env:Parameters_runOnlyImpactedTests} b"
Write-Host "##vso[task.setvariable variable=Parameters.runOnlyImpactedTests]True"
Write-Host "c ${Env:Parameters_runOnlyImpactedTests} d"
#Build Reasons:
#https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2013/ff736208(v=vs.120)
if($Env:BUILD_REASON -eq "Schedule"){
Write-Host "Is Scheduled. Should run all tests"
Write-Host "##vso[task.setvariable variable=Parameters.runOnlyImpactedTests]False"
}
#gci env:
#gci variable:
# Use the environment variables input below to pass secret variables to this script.
及其输出
2019-11-04T18:32:37.5783531Z Génération du script.
2019-11-04T18:32:37.6377454Z a False b
2019-11-04T18:32:37.6408504Z ##[command]"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ". 'D:\BuildsVnexAgents\Agt1-3348\_work\_temp\2fca26a4-3bb5-4d51-9d90-a29aa4c755b5.ps1'"
2019-11-04T18:32:37.9377454Z c False d
2019-11-04T18:32:37.9846229Z
我也尝试使用设置变量Parameters_runOnlyImpactedTests
,Env:Parameters_runOnlyImpactedTests
但它们都给出相同的结果。
我现在的两个问题:
- 为什么变量不取值
- 如果它不能那样工作,是否有其他方法可以实现我的目标?
解决方案
这对你有用吗?
${Env:Parameters_runOnlyImpactedTests} = $false
Write-Host "a ${Env:Parameters_runOnlyImpactedTests} b"
${Env:Parameters_runOnlyImpactedTests} = $true
Write-Host "c ${Env:Parameters_runOnlyImpactedTests} d"
输出:
2019-11-05T09:56:39.8505031Z a False b
2019-11-05T09:56:39.8513437Z c True d
${Env:Parameters_runOnlyImpactedTests}
在其他管道任务中也应该可用。
推荐阅读
- scikit-learn - GridSearchCV 估计器 LogisticRegression 的参数 gamma 无效
- c++ - 在课堂上使用 fstream 的问题
- php - PHP exec() 不返回任何内容
- c# - 如何重新设计我的 C# 应用程序以避免构造函数注入过载?
- java - 尝试从 XML 创建 POJO 时获取不受支持的媒体类型
- java - 这两个代码是等价的吗?
- html - 创建具有背景颜色的列表项,包括悬停时的列表项编号
- recursion - 在 Lisp 中返回两个集合的并集(按字母顺序)的函数
- cmake - 为 nucleo stm32f767 编译 freertos 时出错
- webpack - Webpack 文件加载器:加载资源失败