Azure devops 如何从Azure DevOps发布管道访问构建工件的Git源

Azure devops 如何从Azure DevOps发布管道访问构建工件的Git源,azure-devops,azure-pipelines,azure-pipelines-release-pipeline,Azure Devops,Azure Pipelines,Azure Pipelines Release Pipeline,我想在经过构建管道测试的代码库上创建一个发布管道(生成一个发布包) 我如何发布一个访问Git代码库的版本,该代码库已经成功完成了特定的构建管道 注: 制作发布包非常耗时,所以如果可能的话,我不想将其包含在构建中。在我的案例中制作发布包需要源文件(几乎所有) 我可以通过将整个Git存储库复制到构建的构建工件中,然后使用构建工件来解决这个问题,但我不喜欢这样,因为这需要将整个代码库放到工件中 我还试图为发行版指定两个工件:一个构建和一个git工件,但我不知道如何同步这两个工件(git应该使用构建使

我想在经过构建管道测试的代码库上创建一个发布管道(生成一个发布包)

我如何发布一个访问Git代码库的版本,该代码库已经成功完成了特定的构建管道

注:

  • 制作发布包非常耗时,所以如果可能的话,我不想将其包含在构建中。在我的案例中制作发布包需要源文件(几乎所有)
  • 我可以通过将整个Git存储库复制到构建的构建工件中,然后使用构建工件来解决这个问题,但我不喜欢这样,因为这需要将整个代码库放到工件中
  • 我还试图为发行版指定两个工件:一个构建和一个git工件,但我不知道如何同步这两个工件(git应该使用构建使用的提交)。对于GitOne,我可以选择“特定提交”,但我不知道如何在那里指定构建工件的提交

如果您为发布指定了两个工件:构建和git工件。您可以使用
Release.Artifacts.{alias}.SourceVersion
来同步生成所使用的提交和git工件的提交

此变量
Release.Artifacts.{alias}.SourceVersion
返回从中生成生成工件的提交哈希。因此,您可以在发布管道中添加脚本任务以签出特定的提交。请参阅powershell任务中的以下示例脚本:

cd  _theGitArtifactsAliasName
git checkout $(Release.Artifacts._TheBuildArtifactsAliasName.SourceVersion)
然后git的工件将在构建工件的提交上


在正常提交时效果很好!对于PR构建,它不起作用(无论如何都不需要),但由于它会以这种方式保持头部的静默状态,因此我在git签出之后添加了一个
IF ERRORLEVEL 1 exit/b 1
行,这样至少对于PR构建,它会失败。