我正在尝试为Visual Studio Team Services中的微服务架构项目设置一个发布流程。为了完成这项工作,我需要为我的解决方案中的每个项目/服务提取工件。我可以通过为每个具有硬编码值的服务设置单独的构建步骤来手动执行此操作。 但是,如果我想让我更通用呢?
在我的梦想场景中,我将能够创建一个以服务名称作为输入的任务组,然后才能发送要部署的服务/项目列表。 我已经弄清楚如何创建任务组,但不知道如何将列表作为构建的输入,而不是如何循环调用我的任务的对象列表。 有什么建议?任何第三方工具还是我应该花时间查看powershell脚本呢?
编辑:我会尝试用一些伪代码来澄清我想要的东西:
BuildAndReleaseCode(solution, listOfServicesToBuild)
{
NuGetRestore(solution);
outputfolder = BuildSolution(solution);
//Add testing
for (service in listOfServicesToBuild)
{
CopyFilesAndPublishArtifact(sourceFolder, targetfolder)
DeployArtifact(targetFolder, targetMachine)
}
}
答案 0 :(得分:2)
一般过程:
当新的工件版本可用时,可以触发发布(Open Release Definition => Triggers选项卡)。
此外,在特定时间签入或队列构建时可能会触发构建。 (打开构建定义=>触发器选项卡)
<强>更新强>
对于Visual Studio Build步骤,可以使用通配符,例如,***。sln用于所有子文件夹中的所有sln文件,因此您无需使用硬编码值指定项目。
如果要在解决方案中构建特定项目,可以指定/t parameter。
如果这些项目位于不同的解决方案和位置,您可以创建一个MSBuild project file,它使用MSBuild任务来构建项目。
另一方面,你可以自定义构建任务来实现这一点,你可以参考VSBuild code和这些文章(1或2)来自定义构建任务,之后,使用此自定义构建任务和项目列表参数来构建所需的项目。