我有一个CI管道(VSTS),可以在其中构建整个解决方案,其中在一个工件中包含两个网站项目。我要做的是构建整个解决方案,然后为每个项目创建发布工件。 例如 Project_website1的一个工件 Project_website2的一个工件 谢谢。我在StackOverflow中尝试了类似的主题,但对我没用
答案 0 :(得分:1)
您可以使用两个发布工件任务,并且可以将多个任务复制文件以在VSTS构建中实现任意数量的工件。例如,假设您拥有单个项目的当前工件,该项目由_PublishedWebsites \ MVS5WebApp(可部署XCopy的网站)和_PublishedWebsites \ MVS5WebApp_Package(Web部署程序包)组成。 如果要将这两部分分成两个工件,则可以使用两个Publish Artifact任务,如下所示,每个任务都指定要发布的确切路径(该路径不支持通配符,您只需要指定需要发布的文件夹即可)
答案 1 :(得分:0)
要分别发布两个网站项目的工件,只需使用两个VS构建任务和两个Publish Build Artifacts任务来分别构建和发布两个网站。
第一个VS构建任务和Publish Build Artifacts任务用于website1,第二个VS构建任务和Publish Build Artifacts任务用于website2。每个任务的详细配置如下:
网站1的VS构建任务(将网站1的软件包存储在$(build.artifactstagingdirectory)\web1
中)
发布网站1的构建工件(将网站1的工件从$(build.artifactstagingdirectory)\web1
发布到工件web1
):
网站2的VS构建(将网站2的软件包存储在$(build.artifactstagingdirectory)\web2
中)
发布网站2的构建工件(将网站2的工件从$(build.artifactstagingdirectory)\web2
发布到web2
):
然后,您可以分别获得两个项目的构建工件:
答案 2 :(得分:0)
这就是我所做的 由于我正在使用自己的代理 因此,网络项目将发布在代理的每个项目发布目录中。 那是目录a。
解决方案: 我所做的就是在所有解决方案建立好整个解决方案之后,将vsts将所有网站都放在发布目录a中。 我编写了powershell脚本来获取项目的每个文件,并将其放在发布的文件夹a中的子目录下。
例如 构建解决方案后,发布文件夹a将如下所示 Website1 ....... xml 网站1..zip 。 。 。 Website2 ........ xml 网站2 ........ zip 。 。
等 构建解决方案后,这些文件将位于文件夹togeter的上方。
为了为每个项目构建工件,我编写了powershell脚本将每个项目文件放在子目录中 例如 一个\网站1 Website1 ....... xml Website1 ....... zip
a \ website2 Website2 ....... xml Website2 ....... zip
等等
之后,为每个目录选择每个发布工件,然后您可以为每个项目拥有工件。 谢谢