在我的解决方案中,我有两个项目(Asp.net MVC和Windows服务)。我想创建CI / CD管道以在不同的VM上部署Web应用程序和Windows服务。但要实现这一点,我的CI管道应该能够为两个项目单独发布工件,然后我可以在CD管道中提供这些工件以进行部署。所有项目的工件如何在CI管道中单独发布?
PS:如果我创建两个解决方案,每个只有一个项目并分别创建CI / CD管道,一切正常。但我想通过上面提到的具有多个项目的解决方案实现它。
答案 0 :(得分:5)
You can use multiple, Publish tasks to create multiple artifacts in a single build definition.
For example lets say, you have below, as your current artifacts for a single project, comprising of _PublishedWebsites\MVS5WebApp (XCopy deployable website) and _PublishedWebsites\MVS5WebApp_Package (web deploy package).
If you want to separate these two, into two artifacts, you can use two Publish Artifact tasks as shown below, each one specifying exact path to publish (this path does not support wildcards, you just have to specify the folder you need to publish)
This will give you output as shown below.
In this example I just only used the Publish Artifacts task and created two artifacts using a single web site project. You can do same for your two project scenario. If you want to use wild card to filter more files before publish you can use "Copy File" task multiple times as required.
答案 1 :(得分:2)
如果您在构建管道中使用'。net core'任务,则取消选中命令文本框后的“发布Web项目”复选框。
然后,它会自动为解决方案中的每个项目创建单独的发布工件,并与每个项目文件具有相同的名称。
答案 2 :(得分:0)
您有多种方法可以实现这一目标 您可以创建针对项目的多个构建定义,而不是使用正确的参数创建构建步骤中的解决方案 或者,您可以拥有一个包含多个构建步骤的构建定义 在发布方面,您可以利用一个版本定义,包含多个步骤或多个版本定义。