Azure DevOps:1个解决方案多个项目CI / CD

时间:2019-03-07 16:06:21

标签: git visual-studio azure-devops project-structure

我刚刚开始使用CI / CD设置Azure DevOps。这可能无法实现,但我希望找到答案。

我有6个项目的解决方案:

  • Web Api项目(引用基础结构,存储库和模型项目)
  • 网站项目(调用Web Api获取数据并引用基础结构,存储库和模型项目)
  • Node.js项目(仅调用Web Api获取数据)
  • 基础设施项目(由Web Api和网站共享)
  • 存储库项目(由Web Api和网站共享)
  • 模型项目(由Web Api和网站共享)

在我开始搜索如何在CI / CD定义中将Web Api,Web站点和Node.js项目发布到他们自己的Azure App Service之前,

是否可以进行设置,以便仅部署某些项目?即:仅发布Node.js项目,或者仅发布Web Api和网站,而不发布Node.js。

还是我需要将事情保留在不同的解决方案中?

如果我将它们放在单独的解决方案中,那么这对源代码管理(Git)的共享项目(基础结构,存储库和模型)有何影响?如果我在Web Api解决方案中的“模型和存储库”中添加代码,我是否要提交这些更改而不是Web Api Git存储库?这对引用相同Models和Repo项目的其他项目有何影响?这是Git子模块起作用的地方吗?

更新1 (2019/3/8)

看起来我可以使用路径过滤器https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=azure-devops)在1个解决方案中实现此目的。仍对进一步的输入感兴趣。

2 个答案:

答案 0 :(得分:0)

看我是否理解您的问题,您需要部署特定的内置零件 是的,您可以在天蓝色的DevOps中执行此操作。在Azure DevOps中,您具有生成定义和发布管道。 在构建中,您将构建项目并仅发布您提到的2个组件,而在发布中,您将部署它们 希望我回答了您的问题

答案 1 :(得分:0)

希望这对其他人有帮助

我通过在Build定义中使用 Path filters 来解决了这个问题,它可以完美运行。我为每个需要在某个地方生活或托管的项目创建了1个构建定义(在我的示例中,我有3个Build定义:Web Api,Website,Node.js)。

路径过滤器中使用正确的项目路径,只有正确的Builds旋转,并且任何未触及的项目都不会触发构建。每个构建都有自己的release,然后将指定的应用程序部署到其自己的目的地。