TFS 2013 使用动态解决方案计数构建定义
Posted
技术标签:
【中文标题】TFS 2013 使用动态解决方案计数构建定义【英文标题】:TFS 2013 Build definition with dynamic solution count 【发布时间】:2016-01-11 22:13:06 【问题描述】:我正在尝试在 TFS 2013 中设置构建定义,该定义是通过 CI 监视分支文件夹触发的。它需要确定哪些分支涉及哪些触发的签入,然后编译每个分支并放置在放置文件夹中。
用户故事分支文件夹
US1(分支) US2(分支) US3(分支)CI 观察 UserStoryBranchesFolder 并由 US1、US2 或 US3 上的签入触发(这是有效的)。
现在它需要确定哪个分支与签入相关联,TFS 支持签入中的多个分支,因此这可能是 1,2 或 3 个受影响的分支。 (不工作)
什么没用:
TFS 2013 使用新的工作流 XAML,所以我认为不支持
通配符配置,尝试 SourceSettings -> SourceControlFolder = UserStoryBranches/*/mySolution.sln
随着 USBranches 被动态创建,我尝试在 UserStoryBranchesFolder 中添加一个 DummySolution.sln 并指向 SourceControlFolder,它匹配并正常工作,但我不知道如何使构建过程模板通过目录搜索,使决策,然后构建。
如果我可以获得编程访问权限: 所有分支的最近修改时间是什么,构建所有分支,以此为时间戳。
最终目标(对替代解决方案开放): 我想在每个 sprint 开始时削减用户故事分支,并将它们作为每个分支 1 个应用程序部署到单个 IIS 站点,而不更改 TFS 或 RM(发布管理)中的任何内容。一旦构建位于放置文件夹中,我就很好,如果有另一种方法可以实现这一点,我会非常开放。
【问题讨论】:
【参考方案1】:我从来没有使用过用户故事,所以请原谅我缺乏知识。但是,您是否能够通过发布来构建用户故事?如果是这样,则发布会创建发布配置文件。签入后,构建定义可以将其用作构建过程的指南。 您还可以使用 csproj 而不仅仅是 sln 作为构建项目。您可以创建一个包含所有用户故事的头部解决方案并构建它吗?
我不明白你到底在做什么,那个标签在哪里(我面前没有电脑)请张贴一些截图
【讨论】:
我正在尝试的需要多个 .sln,而不是 csproj。因此,一个变更集进入并与一个分支相关联,该分支内部将有一个 .sln,我需要构建那个特定的 .sln。所以 ci 监视 /branches 并且 /branches 内可能有 3 个分支,每个分支都有一个独立版本的 mySolution.sln 。所以导航是 /branches/us1/mySolution.sln 与 /branches/us2/mySolution.sln,当变更集进来时,它将用于 us1 或 us2 或两者。我需要 tfs 将 * 替换为 /branches/*/mySolution.sln 中的分支名称【参考方案2】:保持简单, 1.您希望将用户故事合并到 iis 中的一个网站吗? 2.最新版本是您要部署的版本吗? 3.你为什么关心变更集?在 CI 中,每次签入都会触发具有最新版本的构建。
【讨论】:
分支是动态创建的,因此 ci 正在监视一个包含多个分支的文件夹,而不是每个分支一个 ci。除非有办法在创建分支时克隆构建模板(无需手动配置)?如果有 10 个分支并且有一个变更集影响了其中的两个,则编译这两个解决方案。 我不会为我们每个人创建一个分支,而是在一个分支中为每个人创建一个文件夹,并使 tfs 监听该父分支并在 checkin 时构建它。可以使用发布配置文件的网络部署功能在构建时创建 iis 网站。以上是关于TFS 2013 使用动态解决方案计数构建定义的主要内容,如果未能解决你的问题,请参考以下文章
如何配置 tfs build 以在发布构建完成时复制 dll
使用 TFS 2017 BuildAgent 构建解决方案时出现错误 CS0234