首页 > 解决方案 > Azure DevOps 创建发布

问题描述

我创建了一个手动发布定义。我希望能够创建一个新版本,并且只让它包含已部署的先前版本的新更改。这可能吗?

标签: azure-devops

解决方案


如果 25 个解决方案都构建在单个构建管道中并发布到单个工件中。您可以在构建管道中添加脚本任务以检查已更改的解决方案。并仅复制更改的工件以进行发布。请参见以下 powershell 脚本中的示例:

下面的内联脚本只是一个例子。

#get the folders that are changed
$folders = git diff --dirstat=files,0 HEAD~1 | Select-String '[0-9]*\.[0-9]*\% (.*)\/' | ForEach-Object{$_.Matches.Groups[1].Value}

#copy the the changed solution built result to artifact folder to publish
foreach ($folder in $folders){ Move-Item -Path $folder/bin  -Destination "$(Build.ArtifactStagingDirectory)"} 

在上面的 powershell 任务中。脚本的第一行将获取所有更改的文件夹。第二行将更改解决方案的构建结果移动到要发布的工件文件夹。

因为您的解决方案可能会在不同的地方输出构建的结果。您需要相应地更改命令的-Path参数Move-Item。您可能还需要更改-Destination参数。

然后,您可以通过发布Destination仅包含更改的工件的文件夹publish build artifact task。然后您的发布管道将仅部署已更改的工件。

主要思想是检查哪个解决方案已更改并复制更改的工件,并仅将它们作为工件发布。


推荐阅读