【问题标题】:Getting only partial Shelveset in vNext Build在 vNext Build 中仅获取部分 Shelveset
【发布时间】:2018-05-18 15:01:48
【问题描述】:

我正面临以下问题。我们有一个 Gated Check-In 设置,这意味着更改不是直接签入的,而是创建一个 Shelveset 并针对该搁置运行构建。仅当构建成功时,才会签入更改。

现在我们将构建定义设置为仅映射构建所需的少量内容,因为我们希望将其运行所需的时间保持在最低限度。现在的问题是,如果您在更改中包含任何未映射的内容,则构建将在 GetSources 任务中失败,因为它无法取消搁置并给出文件夹映射错误。

为了更好地理解,请想象以下结构:
- 我的存储库
-- 来源
--- 我的代码文件
-- 文件
--- 一些文件

所以在 BuildDefinition 中我们只映射 Sources 目录,因为它包含我们需要构建的文件。您现在必须确保从不Sources 之外包含任何更改,例如在 Documents 中,否则构建将立即失败。

我已经搜到了unshelve命令的描述:https://docs.microsoft.com/en-us/vsts/tfvc/unshelve-command?view=vsts

根据这个描述,应该可以指定itemSpec

Identifies the file or folder revisions to unshelve into the current workspace

所以看起来 unshelve 命令实际上会支持“部分”取消搁置。但是,我没有看到任何关于如何通过 vNext 构建实现这一目标的方法,因为我找不到任何关于 GetSources 任务如何工作的信息。

有什么我遗漏的,还是当前的实现根本无法实现?

【问题讨论】:

    标签: tfs azure-devops azure-pipelines gated-checkin


    【解决方案1】:

    恐怕你没有错过任何东西,这在当前的实现中是不可能的。这里有更详细的讨论:

    https://github.com/Microsoft/vsts-agent/issues/1087

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      • 2018-05-24
      • 2018-02-03
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多