【问题标题】:Going from test/staging to release server with teamcity使用 teamcity 从测试/登台到发布服务器
【发布时间】:2013-11-14 09:40:54
【问题描述】:

目前我们正在使用团队城市进行自动测试和部署到测试/登台服务器。我们的解决方案由几个共享一个公共域的 .net web api:s 和 mvc 项目组成。工作流程如下(简化):

  1. 开发人员检查他对 svn 的更改
  2. Teamcity 运行一个 msbuild 脚本,负责解决方案的配置转换、测试和打包。然后将解决方案部署到测试服务器(如果测试通过)。

这真的很好用,但我们不确定如何最好地部署到我们的发布服务器以及工作流程应该是什么样子。想象一下,我们有很大的“释放”按钮。然后应该遵循哪些步骤?由于这个问题非常模糊,我试图通过以下问题使其更加具体:

  1. 当按钮被按下时,我们想要标记当前的 svn 根目录。团队城市可以做到这一点还是我应该反过来,即创建一个标签并让团队城市使用它而不是根?如果是这样,我如何告诉团队城市使用哪个标签? 还是应该改用最新的构建工件?

  2. 与 1. 我如何处理发布工件/标签的版本控制(命名)有关?

  3. 出于某种原因,使用 msdeploy 将解决方案部署到我们的发布服务器是否存在不好的做法?我应该考虑手动处理部署步骤吗?

  4. 是否应该手动处理数据库迁移?

我还应该考虑什么?

编辑: 我发现this blogpost 回答了关于如何创建 svn 主干的自动标记/标签的问题。

【问题讨论】:

    标签: .net svn msbuild continuous-integration teamcity


    【解决方案1】:

    我面临着类似的情况。

    一种方法:在 TeamCity 中构建链

    解决它的一种方法是添加构建链,其中您的第二个构建配置基于第一个构建配置。您通过以下方式(在 TeamCity 7/8 中)执行此操作:

    1. 添加第二个构建配置
    2. 在“依赖项”选项卡中指定快照依赖项
    3. 如果需要,在“依赖项”选项卡中指定工件依赖项(并将它们标记为“从同一链构建”以使用上游工件。

    不要在您的第二个构建配置中添加构建触发器;然后你必须点击它上的Run 才能让它去。

    这还允许您根据需要从不同的存储库中提取配置和数据。

    但我不知道你对谁可以按下运行按钮有多少控制权......到目前为止,似乎任何可以登录并查看项目的人都具有这种能力。

    有关详细信息,请参阅有关构建链的 TeamCity 7TeamCity 8 文档。

    替代方法

    最后这有点混乱,所以我正在查看BuildMaster,而不是接管它的工作流程部分; TeamCity 仍将处理构建,BuildMaster 将负责促销和部署。

    【讨论】:

      猜你喜欢
      • 2011-01-12
      • 1970-01-01
      • 2019-01-24
      • 2012-05-12
      • 2015-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多