在 azure devops 管道中仅在 .net core 解决方案中构建已更改的项目

问题描述 投票:0回答:1

场景:

  • 我在.net core 7解决方案中有三个正在运行的项目。
  • 我有一个构建 yaml 管道(在 azure devops 中),用于持续集成,它检测暂存分支中的任何更改,并构建工件,然后由发布管道使用,以持续部署到通过服务连接的各个 Azure 应用程序服务连接。
  • 但是,如果我仅在一个项目中进行更改,那么我不希望构建和部署其他两个未更改的项目,因为这非常耗时,并且会消耗我免费的 Microsoft 托管机器时间。

对于构建管道,我有典型的工作流程:

  1. 设置触发器和vmImage
  2. 安装 .net 7 和 NuGetToolInstaller
  3. 构建解决方案并发布工件

工件位于“drop/{{ProjectName}}.zip”中(drop 文件夹下有 3 个文件)

对于发布管道:

  1. 触发
  2. 然后是 3 个任务,用于基于服务连接和放置文件夹下的文件的 Web 应用程序部署。

我想做的只是构建和部署,只有那些由于上述原因而发生更改的项目。

我认为,这是大型解决方案(包含数百个项目)的常见场景,因为有些项目可能永远不会改变(因为它们很旧或遗留),我们将不胜感激,因为我找不到任何项目此案例场景的解决方案。

谢谢

azure azure-devops build pipeline release
1个回答
0
投票

如果您希望管道在某些项目的更改而不是与解决方案关联的任何项目发生更改时触发,则 YAML 管道的触发器部分中的路径过滤器可能是最简单的方法。

为此,您可以尝试在 YAML 定义文件中从

staging 分支
添加 paths 部分到
include
到预期项目的路径或
exclude
到意外的项目;可以控制推送到这些路径下的文件的更改/提交是否会触发构建管道。

© www.soinside.com 2019 - 2024. All rights reserved.