如何在VSTS上创建通用构建和发布

时间:2017-10-15 16:14:28

标签: azure-devops azure-pipelines azure-pipelines-release-pipeline

在采用微服务架构时,我们发现我们有很多具有相同结构的项目。

.Net和.Net Core项目更具体,其中大部分都是作为Azure App Services(Web Apps)发布的。

今天,我们必须为每个项目/应用程序配置构建定义和发布定义。

是否有办法只有一个Build定义和一个Release定义可以由任何checkin触发,构建特定项目并创建一个发布到特定应用服务的版本?

谢谢

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。您可以构建和发布定义来单独构建/部署不同类型的项目。

假设您在git repo中有两个项目:

root
  |___ .git      
  |___ dotnetProject
             |___ dotnetProject.sln
             |___ dotnetProject
                       |___ dotnetProject.csproj
                       |___ …
  |___ dotnetCoreProject
             |___ dotnetCoreProject.sln
             |___ dotnetCoreProject
                       |___ dotnetCoreProject.csproj
                       |___ …

详细设置如下:

  1. 在构建和发布定义中添加为项目构建和部署所需的所有任务。
  2. 分别在构建和发布定义中定义两个变量dotnetdotnetCore,默认值为0
  3. 为您需要为不同类型的项目构建/部署的任务设置自定义条件。

    • 对于为.NET项目构建/部署的任务,请使用以下自定义条件: enter image description here
    • 对于为.NET Core项目构建/部署的任务,请使用以下自定义条件: enter image description here
  4. 通过添加PowerShell任务来检测CI构建的哪些项目已更改。

    在任务开始时添加PowerShell任务,并检查上次提交已更改的文件。如果.NET项目已更改,请将dotnet变量设置为值1,并创建一个内容为dotnet的文件1。如果已更改.NET核心项目,请将变量dotnetCore设置为值1,并创建一个内容为dotnetCore的文件1

    注意:您还应将文件dotnetdotnetCore发布为构建工件,因为您应该解析dotnetdotnetCore的值基于文件的发布定义中的变量。

  5. 根据文件dotnetdotnetCore更改dotnetdotnetCore个变量值。

    在发布定义的开头,添加PowerShell任务。检查构建工件中的文件dotnet / dotnetCore。如果有,则根据文件内容更改相关变量。

相关问题