Azure DevOps:1 个解决方案多个项目 CI/CD
Azure DevOps: 1 Solution Multiple Projects CI/CD
我刚开始使用 CI/CD 设置 Azure DevOps。这可能是不可能的,但我希望找到答案。
我有一个包含 6 个项目的解决方案:
- Web Api 项目(引用基础设施、存储库和模型项目)
- 网站项目(调用 Web Api 获取数据和引用基础设施、存储库和模型项目)
- Node.js项目(只调用WebApi获取数据)
- 基础设施项目(由 Web Api 和网站共享)
- 存储库项目(由 Web Api 和网站共享)
- 模型项目(由 Web Api 和网站共享)
在我开始搜索如何在 CI/CD 定义中将 Web Api、网站和 Node.js 项目发布到它们自己的 Azure 应用服务之前:
是否可以设置为仅部署某些项目?即:仅发布 Node.js 项目或仅发布 Web Api 和网站,但未发布 Node.js.
或者我需要用不同的溶液保存东西吗?
如果我将它们放在单独的解决方案中,这对引用源代码管理 (Git) 的共享项目(基础架构、回购和模型)有何影响?如果我将代码添加到 Web Api 解决方案中的模型和回购,我是否提交这些更改而不是 Web Api Git 回购?这对引用相同模型和 Repo 项目的其他项目有何影响?这是 Git 子模块发挥作用的地方吗?
更新 1 (2019/3/8)
看起来我可以使用 路径过滤器 (https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=azure-devops) 在 1 个解决方案中实现此功能。仍然对任何进一步的输入感兴趣。
看看我是否理解你的问题,你需要部署特定的构建部件
是的,您可以在 azure DevOps 中执行此操作。在 Azure DevOps 中,你有构建定义和发布管道。
在构建中,您将构建项目并仅发布您提到的 2 个组件,在发布中,您将部署它们
我希望我回答了你的问题
希望这对其他人有帮助:
我通过在 Build
定义上使用 Path filters 解决了这个问题,它完美地工作。我为每个需要在某处存在或托管的项目创建了 1 个构建定义(在我的示例中,我有 3 个 Build
定义:Web Api、Website、Node.js)。
在 路径过滤器 中使用正确的项目路径,只有正确的 Builds
启动,任何未触及的项目都不会触发构建。每个构建都有自己的 release
,然后将指定的应用程序部署到它自己的目的地。
我刚开始使用 CI/CD 设置 Azure DevOps。这可能是不可能的,但我希望找到答案。
我有一个包含 6 个项目的解决方案:
- Web Api 项目(引用基础设施、存储库和模型项目)
- 网站项目(调用 Web Api 获取数据和引用基础设施、存储库和模型项目)
- Node.js项目(只调用WebApi获取数据)
- 基础设施项目(由 Web Api 和网站共享)
- 存储库项目(由 Web Api 和网站共享)
- 模型项目(由 Web Api 和网站共享)
在我开始搜索如何在 CI/CD 定义中将 Web Api、网站和 Node.js 项目发布到它们自己的 Azure 应用服务之前:
是否可以设置为仅部署某些项目?即:仅发布 Node.js 项目或仅发布 Web Api 和网站,但未发布 Node.js.
或者我需要用不同的溶液保存东西吗?
如果我将它们放在单独的解决方案中,这对引用源代码管理 (Git) 的共享项目(基础架构、回购和模型)有何影响?如果我将代码添加到 Web Api 解决方案中的模型和回购,我是否提交这些更改而不是 Web Api Git 回购?这对引用相同模型和 Repo 项目的其他项目有何影响?这是 Git 子模块发挥作用的地方吗?
更新 1 (2019/3/8)
看起来我可以使用 路径过滤器 (https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=azure-devops) 在 1 个解决方案中实现此功能。仍然对任何进一步的输入感兴趣。
看看我是否理解你的问题,你需要部署特定的构建部件 是的,您可以在 azure DevOps 中执行此操作。在 Azure DevOps 中,你有构建定义和发布管道。 在构建中,您将构建项目并仅发布您提到的 2 个组件,在发布中,您将部署它们 我希望我回答了你的问题
希望这对其他人有帮助:
我通过在 Build
定义上使用 Path filters 解决了这个问题,它完美地工作。我为每个需要在某处存在或托管的项目创建了 1 个构建定义(在我的示例中,我有 3 个 Build
定义:Web Api、Website、Node.js)。
在 路径过滤器 中使用正确的项目路径,只有正确的 Builds
启动,任何未触及的项目都不会触发构建。每个构建都有自己的 release
,然后将指定的应用程序部署到它自己的目的地。