gpt4 book ai didi

asp.net - 使用 Team City 快照依赖项时,您是使用快照的后期构建文件还是仅使用 SVN 修订号?

转载 作者:行者123 更新时间:2023-12-04 10:28:53 25 4
gpt4 key购买 nike

我在一个项目中有 2 个构建配置:

  • 构建和测试代码
  • 部署代码

  • 我希望 Deploy Code 仅在 Build & Test Code 构建成功时运行,因此我设置了快照依赖项。

    快照依赖项是否意味着 Deploy Code 将 check out 与 Build & Test Code 相同的 SVN 修订版,然后针对该 check out 运行 NAnt 脚本,该脚本将不包含编译器生成的构建后文件?或者,对来自部署代码的构建和测试代码的快照依赖是否意味着 NAnt 将针对构建代理上构建和测试代码的构建后工作目录文件运行?

    更新:

    似乎如果我将快照依赖项放在部署代码的构建和测试代码上,并且我有构建和测试代码的最新版本的构建,我的 NAnt 脚本将为该构建和测试代码的构建部署构建后文件。

    我仍然想确认我理解这个概念,因为我并不真正理解 Team City 文档。我想我应该确保 Deploy Code 在与 Build & Test Code 相同的构建代理上运行,否则我可能会遇到 Deploy Code 检查 SVN 修订版然后只部署预构建代码文件的情况。这样对吗?

    我的困惑主要是因为您似乎必须为 Deploy Code 设置 VCS。那是因为它需要将修订号与快照依赖项进行比较吗?

    最佳答案

    来自 Snapshot Dependency section of the Dependent Builds doco page :

    A snapshot dependency from build configuration A to build configuration B enforces that each build of A has a "suitable" build of B so that both builds use the same sources snapshot (used sources revisions correspond to the same moment).



    因此快照依赖的想法是,您可以针对与已成功运行的另一个构建完全相同的代码库运行构建。

    如果您希望“部署代码”构建仅在“构建和测试代码”成功运行后运行,请在第二个构建中创建快照依赖项,并确保将其设置为“仅使用合适的成功构建”。

    请记住,这与人工制品无关;第二个构建将简单地提取相同的代码库并重新编译它。如果您想部署从第一次构建创建的人工制品,那么您需要查看人工制品依赖项。这正是保罗在他的回答中所写的,是正确的方法。

    关于您的更新,听起来那些构建后文件仅可用,因为它们在第一次构建后仍在构建代理上。尝试运行第一个构建,然后在代理上“清理源”并运行第二个构建。你会发现原来的编译输出不再存在,它会失败。这很重要,因为如果您有多个构建代理或在两次构建之间有一段时间,您根本无法依赖未保存为人工制品的输出仍然存在。

    是的,TeamCity 文档令人困惑:)

    关于asp.net - 使用 Team City 快照依赖项时,您是使用快照的后期构建文件还是仅使用 SVN 修订号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7921852/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com