有没有办法验证包是否作为 VSTS DevOps 中构建的一部分在特定分支上构建?



作为项目的一部分,我们使用了一些内部的npm包。它们有一个简单的分支策略,即"开发"、"发布"和"主"。我们的项目将引用此包,但我们想要一种方法来确保当我们发布时,引用的包是在该包的发布分支而不是开发分支的基础上构建的。

如果包不是由给定分支构建的,有没有办法使构建失败?

因此,当构建来自特定发布分支时,您需要某种方式将构建标记为"候选发布"。有许多不同的方法可以做到这一点。

例如,Azure 管道有一些内置变量:

https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml

你看我们有一个变量:Build.SourceBranchName

您可以通过多种方式使用它。例如,您可以将其写入构建说明中.txt并将其打包到工件中。或者,根据打包项目的方式,可以在某处标记此信息。

例如,NPM 支持称为 dist-tag 的东西: https://docs.npmjs.com/cli/dist-tag

然后,发布管道只需要一些逻辑来读取和验证。

最新更新