如何从VSTS CI管道为解决方案中的每个项目单独发布工件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从VSTS CI管道为解决方案中的每个项目单独发布工件?相关的知识,希望对你有一定的参考价值。

在我的解决方案中,我有两个项目(Asp.net MVC和Windows服务)。我想创建CI / CD管道以在不同的VM上部署Web应用程序和Windows服务。但要实现这一点,我的CI管道应该能够为两个项目单独发布工件,然后我可以在CD管道中提供这些工件以进行部署。所有项目的工件如何在CI管道中单独发布?

PS:如果我创建两个解决方案,每个解决方案只有一个项目并分别创建CI / CD管道,一切正常。但我想通过上面提到的具有多个项目的解决方案来实现它。

答案

您可以使用多个“发布”任务在单个构建定义中创建多个工件。

例如,您可以说,您在下面,作为单个项目的当前工件,包括_PublishedWebsites MVS5WebApp(XCopy可部署网站)和_PublishedWebsites MVS5WebApp_Package(Web部署包)。

Current Artifact

如果要将这两者分成两个工件,可以使用两个Publish Artifact任务,如下所示,每个任务指定要发布的确切路径(此路径不支持通配符,您只需指定需要发布的文件夹) Publish website XCopy deploy content

Publish Web Deploy Package

这将为您提供如下所示的输出。 Two Artifacts

在这个例子中,我只使用了Publish Artifacts任务,并使用一个网站项目创建了两个工件。您可以为两个项目方案执行相同操作。如果要在发布之前使用通配符过滤更多文件,可以根据需要多次使用“复制文件”任务。

另一答案

您有多种方法可以实现这一目标。 您可以创建针对项目的多个构建定义,而不是使用正确的参数构建步骤中的解决方案。 或者,您可以拥有一个包含多个构建步骤的构建定义。 在发布方面,您可以利用一个版本定义,包含多个步骤或多个版本定义。

以上是关于如何从VSTS CI管道为解决方案中的每个项目单独发布工件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在单个 git repo 中拥有多个 lambda 函数并为其创建 CI/CD 管道

如何在 CI 管道中存储多个客户端的机密文件?

VSTS Build 不生成最新的二进制文件

集合级别的 VSTS 项目安全性?

如何在 Kubernetes 中隔离 CI 管道每个分支环境?

跨两个不同组织配置 Azure CI CD 管道