是否可以在Azure DevOps发布管道中以编程方式为变量设置可覆盖的默认值?

时间:2020-05-05 01:15:30

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline azure-pipelines-release-task

我在Azure DevOps发布管道中有一个名为some_var的变量。我想在发布时设置默认值。但是我想基于工件放置文件夹中文件的内容以编程方式设置它。但是我仍然希望用户能够在创建发行版时覆盖动态设置的值。

因此,最终用户的行为将是他们(1)导航到“发行版”,然后(2)单击“新建”。该对话框附带some_var变量,该变量已经设置为存储在文本文件中的值。但是,由于将变量设置为在运行时可设置,因此他们也可以在单击按钮以创建发行版之前修改变量值。

有什么方法可以动态填充(在创建发行版之前)some_var值,并且仍然可以让创建该发行版的人在创建时对其进行编辑。

1 个答案:

答案 0 :(得分:1)

对话框出现时,some_var变量已经设置为一个值 存储在文本文件中。

我们不支持此开箱即用功能。发布管道变量不能动态 在创建发行版之前填充some_var值。

可能的解决方法:

您的初衷是set it programmatically based on the contents of a file in the artifact drop folder。因此,我假设您可能具有此版本所依赖的构建管道,而您的实际需求是:

构建管道完成后,发布管道中some_var默认值应设置为构建管道中的值。

您可以考虑在发布所依赖的构建管道的末尾添加一个Powershell任务,根据内容在ps脚本中调用Definitions-Update rest api来设置some_var的默认值构建管道。类似的问题,您可以检查this one

如果在发布时可以设置管道变量some​​_var:

enter image description here

整个行为是(假设我们想将Build中的buildID传递给Release中的some_var):

1。构建管道执行良好,其上一个Powershell任务将some_var更新为some_var = 15

2。当我单击Create release按钮时,对话框出现some_var变量,该变量已经设置为Build管道15中的值。

3。现在,由于some_var在发布时启用了可设置,因此我们可以在单击Create按钮之前轻松地对其进行修改。

希望它会有所帮助:)