gpt4 book ai didi

azure-devops - 通过 VSTS Release Multi-Configuration Phase 两个变量,但只有一个乘数

转载 作者:行者123 更新时间:2023-12-04 23:36:59 25 4
gpt4 key购买 nike

我有一个 VSTS Release Definition,它传递了两个变量,我无法控制其中的内容。它们包含一个逗号分隔的名称字符串和一个逗号分隔的 ID 字符串,它们与按索引的名称相对应。

我想使用一个代理阶段,将并行选项设置为多配置,并将乘数字段设置为 ID 字符串,因此该阶段为每个 ID 运行一次。我还想使用与该阶段中的 ID 对应的名称,但我不确定如何执行此操作。

如果我将乘数设置为两个变量(ID 和名称),它会运行两个数组的笛卡尔积(交叉连接)的阶段,这是不需要的。

例子:

                    IDs: "A1, A2, A3"
Names: "Anna, Adam, Abby"
Runs the phase 9 times: "A1" & "Anna", "A2" & "Anna", "A3" & "Anna"
"A1" & "Adam", "A2" & "Adam", "A3" & "Adam"
"A1" & "Abby", "A2" & "Abby", "A3" & "Abby"

如果我将乘数设置为 ID 变量,它只会运行该阶段正确的次数,但我无法弄清楚如何将相应的名称传递到该阶段。

这甚至可能吗?

提前致谢!

最佳答案

使多配置阶段为 IDs 中的每个项目运行一次变量,并使当前 ID 和名称都可用于阶段:

  • 将乘数字段设置为 IDs正如Marina Liu建议的那样可变。这将为每个 ID 运行一次该阶段。与当前 ID存储在 IDs多变的。
  • 添加一个名为 CurrentName 的空变量这将存储与 IDs 关联的名称多变的。
  • 将内联 Powershell 脚本任务添加到包含以下命令的代理阶段:
  • $names = "$(Names)".Split(", ",[System.StringSplitOptions]::RemoveEmptyEntries)
    Write-Host "##vso[task.setvariable variable=CurrentName]$($names[[int]"$(SYSTEM.JOBPOSITIONINPHASE)" - 1])"

    该脚本使用内置 System.JobPositionInPhase变量,其中包含当前正在运行的阶段的索引,用于从 Names 中获取当前阶段的名称。变量并将其存储在 CurrentName 中多变的。

    您可以使用 $(CurrentName)在阶段中的任何位置获取与 $(IDs) 关联的名称的值.

    关于azure-devops - 通过 VSTS Release Multi-Configuration Phase 两个变量,但只有一个乘数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51049893/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com