发行版管理中的VSTS如何检索最后的提交消息

时间:2018-08-02 01:22:41

标签: continuous-integration azure-devops azure-pipelines continuous-deployment azure-pipelines-release-pipeline

我知道在Build任务中,您可以使用 $(Build.SourceVersionMessage)获取提交消息,但是如果您想从Release任务中获得相同的消息怎么办?

或者如何将那个值作为变量传递给发布管道?非常感谢你!

3 个答案:

答案 0 :(得分:2)

您可以使用REST API检索它。您具有构建ID,因此可以轻松进行REST API调用以检索该构建的提交的提交消息。

但是,让我给您一些思考的地方。我不知道您对提交消息的处理方式,因此以下内容可能无关紧要,但如果确实如此……

  • 如果构建之间存在多个提交怎么办?您只会收到最新提交消息,而不是未生成的提交的提交消息。
  • 如果版本之间存在多个版本怎么办?
  • 如果有多个发行版,但大多数构建版本并未适用于所有环境怎么办?例如。环境2是环境1之后的10个构建。

如果在提交,构建,发布和发布到该发布管道中的每个环境之间的关系少于一对一,那么您将最终丢失提交消息。大概是其中的大多数,尤其是在发布管道中的更高环境中(即使每个构建都部署到管道中的第一个环境,大多数构建也可能不会升级到管道中的最后一个环境)。

答案 1 :(得分:1)

看看Martin Hinshelwood的Variable (de|re)Hydration Tasks

这些任务基本上允许您将变量的子集导出到构建中的JSON文件,将其作为工件发布,然后在您的发行版中再次从JSON导入变量。我经常将这些任务与GitVersion结合使用,以从构建到发行的版本中获取详细的版本信息。

答案 2 :(得分:1)

您可以添加无代理阶段 Agentless phase

并添加一个调用REST API任务。enter image description here

另一个想法可能是,您使用$(Build.SourceVersionMessage)获得消息并将其作为工件供发布过程使用,例如以在构建过程中创建的纯文本文件编写并通过Publish工件任务发布。 / p>