作为 VSTS DevOps 中构建的一部分,有没有一种方法可以验证包是从特定分支构建的?
Is there a way to validate a package is built off a particular branch as part of build in VSTS DevOps?
作为项目的一部分,我们正在使用一些内部 npm 包。它们具有 'develop'、'release' 和 'master' 的简单分支策略。我们的项目将引用这个包,但我们想要一种方法来确保在我们发布时,引用的包是在该包的发布分支而不是开发分支上构建的。
如果给定分支的包尚未构建,是否有办法使构建失败?
所以当您的构建来自特定的发布分支时,您需要一些方法将它们标记为 "release candidate"。有许多不同的方法可以做到这一点。
例如,Azure Pipelines 有一些内置变量:
https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml
你看我们有一个变量:Build.SourceBranchName
您可以通过多种方式使用它。例如,您可以将其写入 build-notes.txt 并将其打包到您的工件中。或者根据您打包工件的方式,您可以在某处标记此信息。
例如NPM 支持称为 dist-tag 的东西:https://docs.npmjs.com/cli/dist-tag
然后您的发布管道只需要一些逻辑来读取和验证。
作为项目的一部分,我们正在使用一些内部 npm 包。它们具有 'develop'、'release' 和 'master' 的简单分支策略。我们的项目将引用这个包,但我们想要一种方法来确保在我们发布时,引用的包是在该包的发布分支而不是开发分支上构建的。
如果给定分支的包尚未构建,是否有办法使构建失败?
所以当您的构建来自特定的发布分支时,您需要一些方法将它们标记为 "release candidate"。有许多不同的方法可以做到这一点。
例如,Azure Pipelines 有一些内置变量:
https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml
你看我们有一个变量:Build.SourceBranchName
您可以通过多种方式使用它。例如,您可以将其写入 build-notes.txt 并将其打包到您的工件中。或者根据您打包工件的方式,您可以在某处标记此信息。
例如NPM 支持称为 dist-tag 的东西:https://docs.npmjs.com/cli/dist-tag
然后您的发布管道只需要一些逻辑来读取和验证。