当您创建 Typescript 自定义任务(基于 NodeJS)时,您可以通过api访问当时可用于构建的所有构建变量。getVariable
此函数返回一个数组VariableInfo
:
/** Snapshot of a variable at the time when getVariables was called. */
export interface VariableInfo {
name: string;
value: string;
secret: boolean;
}
创建 PowerShell3 自定义任务时,您可以通过Get-VstsTaskVariable 函数访问当时可用于构建的所有构建变量。
它返回与 Node 版本类似的对象结构:
New-Object -TypeName psobject -Property @{
Name = $info.Name
Value = Get-TaskVariable -Name $info.Name
Secret = $info.Secret
}
如果您还需要支持 TFS 2015 和 1.x 构建代理,则可以使用(现已弃用)PowerShell 处理程序并使用我在此处描述的自定义 powershell 函数枚举机密。
每个任务 SDK(Typescript 和 Powershell)也支持设置变量的函数。这是在 Typescript中设置变量值的示例:
tl.setVariable(variable, value, isSecret);
在 PowerShell3 上:
Set-VstsTaskVariable -name $VariableName -value $Value -Secret $IsSecret
在 PowerShell(已弃用)上:
Write-Host "##vso[task.setvariable variable=$($VariableName);issecret=$($IsSecret)]$Value"
我的怀疑是你想创建一个任务来读取变量并调用你在原始帖子中提到的命令,然后将这些变量发布到另一个秘密存储。不建议阅读所有秘密并将它们存储在非秘密变量中或以某种方式将它们传递给下一个任务。