【问题标题】:Building a release flow in VSTS for a micro service architecture在 VSTS 中为微服务架构构建发布流程
【发布时间】:2016-10-14 12:07:52
【问题描述】:

我正在尝试在 Visual Studio Team Services 中为我的微服务架构项目设置发布流程。为了完成这项工作,我需要为我的解决方案中的每个项目/服务提取工件。我可以通过为每个具有硬编码值的服务设置单独的构建步骤来手动执行此操作。 但是,如果我想让 i 更通用,那该怎么办?

在我的梦想场景中,我将能够创建一个以服务名称作为输入的任务组,然后能够发送要部署的服务/项目列表。 我已经弄清楚如何创建任务组,但不知道如何将列表作为构建的输入,而不是如何循环调用我的任务的对象列表。 有什么建议么?是否有任何第三方工具,或者我应该花时间查看 powershell 脚本吗?

编辑:我将尝试用一些伪代码来阐明我想要的内容:

BuildAndReleaseCode(solution, listOfServicesToBuild)
{
    NuGetRestore(solution);
    outputfolder = BuildSolution(solution);
    //Add testing
    for (service in listOfServicesToBuild)
    {
        CopyFilesAndPublishArtifact(sourceFolder, targetfolder)
        DeployArtifact(targetFolder, targetMachine)
    }
}

【问题讨论】:

  • 您指定的硬编码值是什么?
  • 你解决了这个问题吗?
  • @starain 不,不幸的是没有。但是我添加了一些伪代码来澄清我在寻找什么。
  • 您的意思是直接通过代码构建和部署项目吗?如何通过 vNext 构建中的构建步骤构建和部署您的项目?例如,Visual Studio 构建、Visual Studio 测试、复制文件(工件)等...
  • @starain 不,我只是决定使用伪代码来尝试使用 VSTS 构建定义来解释我想做什么。

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


【解决方案1】:

一般流程:

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

当有新的工件版本可用时,可以触发发布(打开发布定义=>触发器选项卡)。

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

更新:

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

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

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

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

【讨论】:

  • 啊,你链接的文章可能是我想要的。谢谢!
猜你喜欢
  • 2018-08-07
  • 2020-08-05
  • 2021-07-23
  • 2015-12-26
  • 2014-04-19
  • 2018-09-11
  • 1970-01-01
  • 2019-04-14
相关资源
最近更新 更多