代码之家  ›  专栏  ›  技术社区  ›  Loofer

如何让TeamCity在每次成功构建时运行.bat文件?

  •  2
  • Loofer  · 技术社区  · 15 年前

    我有一个TeamCity(4.something)安装程序,它创建用于部署到SharePoint的.wsp文件。目前,我必须将wsp从build artifacts目录复制到我创建的一个小部署文件夹中。在这个文件夹中,我运行一个.bat,它将新的.wsp部署到我们的测试服务器上。 我可以采取哪些步骤来实现自动化?

    将.bat复制到artifacts文件夹并更新路径等,或者从artifacts文件夹复制到“deploy”文件夹并从中运行.bat。

    当涉及到错综复杂(或基础知识)时,我是个新手!关于msbuild之类的…因此,我们感谢您的牵手!

    2 回复  |  直到 7 年前
        1
  •  11
  •   John Dhom    13 年前

    在TeamCity的最新版本中…

    在构建定义中,您可以识别可以复制/压缩的工件。然后可以手动下载工件或从另一个构建引用工件。( Artifact Dependency )

    您可以设置“构建配置”以直接从CI构建生成的工件进行部署。

    • 创建一个生成以进行部署
    • 建立步骤
      • 运行:带参数的可执行文件
      • 命令可执行文件:.bat文件(确保它是生成的CI生成项目的一部分)
      • 命令参数:补丁文件需要的任何参数
    • 依赖关系
      • 添加新项目依赖项
      • 依赖:选择要部署的CI生成
      • GetArtifacts From:上次成功生成
      • 工件规则:+:**/**

    因此,给定的工件(如批处理文件)在CI构建中…现在您有了一个“部署”构建。当您运行它(手动或设置一个构建触发器)时,它将把所有的CI构建工件复制到它的工作目录(工件依赖项),然后运行批处理文件来进行部署。

    相当光滑。

    注意:只需确保运行TeamCity BuildAgent的帐户具有执行所有部署工作的权限。

    希望这能帮助一些人,因为我花了一段时间才解决这个问题;)

        2
  •  1
  •   A-Sharabiani    7 年前

    我通过创建一个nant任务,然后让teamcity执行nant任务来完成这项工作。这比应该的更痛苦。您应该能够使用msbuild执行与生成后事件相同的操作。