在VSTS中为微服务架构构建发布流程

时间:2016-10-14 12:07:52

标签: powershell continuous-integration azure-devops continuous-delivery

我正在尝试为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)
    }
}

1 个答案:

答案 0 :(得分:2)

一般过程:

  1. 创建构建定义以构建项目并发布工件(发布工件步骤)(具有多个Visual Studio构建步骤的构建定义或每个项目的多个构建定义) 您需要为Visual Studio Build指定项目/解决方案。
  2. 队列构建
  3. 创建发布定义
  4. 将一个或多个工件(构建工件)链接到此版本(工件选项卡)
  5. 添加必要的任务和环境以部署项目。
  6. 创建发布并开始发布以部署
  7. 当新的工件版本可用时,可以触发发布(Open Release Definition => Triggers选项卡)。

    此外,在特定时间签入或队列构建时可能会触发构建。 (打开构建定义=>触发器选项卡)

    <强>更新

    对于Visual Studio Build步骤,可以使用通配符,例如,***。sln用于所有子文件夹中的所有sln文件,因此您无需使用硬编码值指定项目。

    如果要在解决方案中构建特定项目,可以指定/t parameter

    如果这些项目位于不同的解决方案和位置,您可以创建一个MSBuild project file,它使用MSBuild任务来构建项目。

    另一方面,你可以自定义构建任务来实现这一点,你可以参考VSBuild code和这些文章(12)来自定义构建任务,之后,使用此自定义构建任务和项目列表参数来构建所需的项目。