【问题标题】:TFS 2017 change existing parameter of custom build taskTFS 2017 更改自定义构建任务的现有参数
【发布时间】:2017-11-23 05:41:29
【问题描述】:

在自定义构建任务的 json 文件中,我更改了在您选择参数时将发送到 powershell 脚本的值:

{
  "name": "VerbosityLevel",
  "type": "pickList",
  "label": "Level of Verbosity",
  "required": true,
  "helpMarkDown": "Select Verbosity level",
  "defaultValue": "-v:n",
  "options": {
    "quiet": "quiet",
    "minimal": "minimal",
    "normal": "normal",
    "detailed": "detailed",
    "diagnostic": "diagnostic"
  }
}

到这里:

{
  "name": "VerbosityLevel",
  "type": "pickList",
  "label": "Level of Verbosity",
  "required": true,
  "helpMarkDown": "Select Verbosity level",
  "defaultValue": "-v:n",
  "options": {
    "-v:q": "quiet",
    "-v:m": "minimal",
    "-v:n": "normal",
    "-v:d": "detailed",
    "-v:diag": "diagnostic"
  }
}

不幸的是,在更改之前已经存在并且具有该构建步骤的所有构建定义都没有得到更新,并且仍然包含旧值。 Link to Build Definition json

当您更改现有参数的某些内容时,是否有任何有效的方法来更新所有预先存在的构建定义?

【问题讨论】:

  • 我的理解是,如果您的任务版本号被更新,它会作为构建开始的一部分被拉下,并且构建任务不需要更新。您是否尝试过删除代理文件夹中的现有任务,然后查看作业运行时拉下的内容?那还是旧版本吗?

标签: json powershell tfs


【解决方案1】:

task.json 中有一个version of the task,如下所示:

"version": {
        "Major": 2,
        "Minor": 0,
        "Patch": 57
    },

您可以直接更新任务的版本,例如将 2.0.57 更改为 2.0.58...这些更改将自动替换所有预先存在的构建定义,包括任务。

但是,如果您将任务的主要版本(例如 2.0.57)更改为 3.0.57。您需要在任务顶部手动选择版本,如下图所示:

【讨论】:

  • 我在我的场景中增加了补丁值,并上传了版本号增加的任务。旧值保留在旧构建定义中。只有在您编辑构建定义中的任何内容并保存更改时,它才会更改为参数的新值。
  • @CheesusCrust 在我身边得到了和你一样的结果。在我看来,这也应该是有道理的。如果先前存在的构建定义中的构建总是通过并由于任务版本更新/参数之一更改而突然失败并且没有任何信号,这也没有任何意义。所以恐怕你必须编辑旧构建定义中的任何内容才能完成同步。
  • 遗憾的是,对我们来说这是一个两难的境地,因为这意味着我们必须手动进入 100 个构建定义中的每一个,并在我们更改自定义构建任务中的一个参数时手动编辑它们。跨度>
猜你喜欢
  • 2019-01-10
  • 1970-01-01
  • 2021-02-23
  • 2018-04-01
  • 2017-10-03
  • 2016-11-27
  • 2015-09-08
  • 2014-11-07
  • 1970-01-01
相关资源
最近更新 更多