【问题标题】:Publish artifacts after certain build step在某些构建步骤后发布工件
【发布时间】:2014-10-07 12:36:32
【问题描述】:

我在 TeamCity 中通过 3 个步骤设置构建配置:

  • 构建解决方案
  • 进行单元测试
  • 将工件上传到 FTP

对于 FTP 上传,我使用了 FTPUpload 插件,取自 http://teamcityrunners.codeplex.com/。要上传的文件夹设置为绝对路径:

%userprofile%\.BuildServer\system\artifacts\%env.TEAMCITY_PROJECT_NAME%\%env.TEAMCITY_BUILDCONF_NAME%\%env.BUILD_NUMBER%\

根据构建日志,只有在所有步骤都完成后才会发布工件。

是否可以将 TeamCity 配置为在特定构建步骤后发布工件?

【问题讨论】:

    标签: teamcity


    【解决方案1】:

    我们为我的一个项目做了类似的事情。我们使用 2 种构建配置。

    第一个构建解决方案,运行单元测试并生成工件。

    在最后一次成功构建时使用Artifact Dependency 设置第二个构建。这意味着第二个构建将开始从第一个构建中获取工件。第二个构建将有一个上传到 ftp 站点的构建步骤。第二个构建是使用指向第一个构建的Finish Build Trigger 设置的。这将使它在第一次构建完成时启动。

    这种方式需要更多的工作,但是一旦你设置好它就可以很好地工作。

    【讨论】:

    • 谢谢!这是个好主意。但是,是否可以在单个构建配置中完成整个周期(构建、测试和部署)?更多的是构建配置的自给自足问题。一个项目的一种构建配置。
    • @black_wizard 您可以添加一个构建步骤,使用 Ant 或其他工具将工件放在一个文件夹中。然后从那里进行 Ftp,然后将 teamcity 工件步骤指向该文件夹。除了这两种方法我不知道该怎么做。我同意这是有道理的,你应该能够做到。您可以将其作为下一个版本的功能请求。如果你这样做,请告诉我,我会投票给它。
    • 嗯,看起来this 功能请求是我正在寻找的东西。
    【解决方案2】:

    如果您的目标是将工件上传到 TeamCity 服务器,您不需要任何外部插件,只需在构建配置的常规设置中填写“工件路径”即可。 同样,您可以在构建期间通过将特殊格式的文本打印到标准输出中来发布工件,"service message"

    仅当您想上传到与 TeamCity 无关的某个 FTP 时才需要提到的插件。

    【讨论】:

    • 是的,我知道这个设置。谢谢你。但主要任务是将工件上传到服务器,与 TeamCity 无关。
    【解决方案3】:

    根据上面的票, TW-1558 外部工件发布(FTP、复制) 似乎有一个新插件可以解决此问题。 (我没用过。)

    http://confluence.jetbrains.com/display/TW/Deployer+plugin 在构建配置设置中,新的运行器将可用于构建步骤。 新跑步者包括:

    • SMB 部署程序 - 通过 SMB 协议将文件上传到 Windows 共享
    • FTP Deployer - 将文件上传到 FTP 服务器
    • SSH Deployer - 通过 SSH 上传文件(使用 SCP 或 SFTP 协议)
    • SSH Exec - 使用 SSH 执行任意远程命令
    • Tomcat Deployer - 将 WAR 应用程序存档部署到远程 Tomcat 实例(需要在目标 Tomcat 中安装 Manager webapp 服务器)

    【讨论】:

      【解决方案4】:

      值得注意的是,从 TeamCity 8 开始,您可以使用 Meta-Runner 功能通过向构建日志发送消息来构建工件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-04
        • 2022-01-17
        • 2017-09-22
        • 2016-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多