问题描述
我想创建一个发布管道,该管道可以在经过构建管道测试的代码库上正常工作(制作发布软件包)。
我如何发布一个可以访问Git代码库的版本,而该版本已成功完成了特定的构建管道?
注意:
- 制作发行包非常耗时,因此,如果可能的话,我不想将其包含在构建中。就我而言,制作发行包需要源文件(几乎全部)。
- 我可以通过将整个Git存储库复制到构建的构建工件中,然后使用构建工件来解决此问题,但是我不喜欢这样,因为它需要将整个代码库都放入工件中。
- 我还试图为该发行版指定两个构件:一个构建和一个git,但是我不知道如何同步这两个构件(git应该使用该构建使用的提交)。对于Git,我可以选择“特定提交”,但是我不知道如何在此处指定构建工件的提交。
解决方法
如果您为发行版指定了两个构件:一个构件和一个git构件。您可以使用predefined release variable Release.Artifacts.{alias}.SourceVersion
来同步构建所使用的提交和git工件的提交。
此变量Release.Artifacts.{alias}.SourceVersion
返回用于构建构建工件的提交哈希。因此,您可以在发布管道中添加脚本任务,以检出特定的提交。请参阅以下powershell任务中的示例脚本:
cd _theGitArtifactsAliasName
git checkout $(Release.Artifacts._TheBuildArtifactsAliasName.SourceVersion)
然后git的工件将在构建工件的提交上出现。