首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AzureDevops -如何根据依赖于前一个代理的自定义条件执行释放管道代理

AzureDevops -如何根据依赖于前一个代理的自定义条件执行释放管道代理
EN

Stack Overflow用户
提问于 2020-01-10 11:05:30
回答 3查看 1.2K关注 0票数 1

我有两个特工在我的释放计划中。第二代理只应根据第一个代理的输出来运行。

第一代理代码如下

代码语言:javascript
复制
ssh task:

echo "##vso[task.setvariable variable=isNextExecutable;isOutput=true]true"

第二代理有以下自定义条件

代码语言:javascript
复制
and(succeeded(), eq(variables[isNextExecutable], 'true'))

此外,我尝试使用API(遵循如何从发布任务修改Azure DevOps发布定义变量?)更新环境变量,但是这些变量正在更新,只有发布管道正在完成。

我的问题:

1)如何根据第一代理输出的自定义条件执行代理?

2)是否可以在任务级别上添加多个自定义条件?如果成功地执行了前一个任务,并且基于在同一代理中的前一个任务中设置的值,则应该执行该任务。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-13 11:08:26

经过如此多的调试后,我在PowerShell脚本中为错误提供了资金。这可能对其他人有帮助。

若要在完成发布管道执行后更新发布定义,请执行以下操作。

代码语言:javascript
复制
https://vsrm.dev.azure.com/{org}/{project}/_apis/Release/definitions**/$(Release.ReleaseId)?api-version=5.1

若要在执行发布管道期间更新发布定义,请在URL下面使用,但这些更改在同一代理程序中不可用。如果要使用修改后的值,则必须创建单独的代理。

代码语言:javascript
复制
 https://vsrm.dev.azure.com/{org}/{project}/_apis/release/releases/$(Release.ReleaseId)?api-version=5.1
票数 0
EN

Stack Overflow用户

发布于 2020-01-13 10:22:27

如何根据第一个代理输出的自定义条件执行代理?

对于此问题,如果您不使用yaml发布管道,恐怕这是不可能的。

注意到,更新后的变量值的作用域为正在执行的作业,并且不跨作业或阶段流动。

这在官方的文档中有说明。您可以尝试在Azure DevOps中使用YAML创建DevOps管道,以便您可以使用多任务输出变量在作业之间传递变量值。

作为解决办法,您可以在发布定义变量中定义一个变量,然后使用REST (定义-更新)更新代理作业1中的发布定义变量的值,在下一个代理作业中使用发布定义变量的更新值,有关详细信息,请参阅

是否可以在任务级别上添加多个自定义条件?

对于这个问题,答案是yes,您只需要使用类似于此##vso[task.setvariable variable={variableName};isOutput=true]{variableValue}的脚本将其输出到以下任务。

在下列任务中:

票数 2
EN

Stack Overflow用户

发布于 2020-07-19 12:30:08

如果要在任务组中使用变量,可以设置isOutput=false并使用表达式$(变量名)进行引用。

https://github.com/MicrosoftDocs/azure-devops-docs/issues/6983

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59680439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档