【问题标题】:TFS 2013 Build definition with dynamic solution countTFS 2013 使用动态解决方案计数构建定义
【发布时间】: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(发布管理)中的任何内容。一旦构建位于放置文件夹中,我就很好,如果有另一种方法可以实现这一点,我会非常开放。

【问题讨论】:

    标签: tfs msbuild release release-management ms-release-management


    【解决方案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 网站。
    猜你喜欢
    • 2016-12-24
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-18
    • 2021-06-16
    • 2019-02-26
    • 1970-01-01
    相关资源
    最近更新 更多