【问题标题】:How to deploy artifacts of TeamCity to Amazon EC2 Server如何将 TeamCity 的工件部署到 Amazon EC2 服务器
【发布时间】:2011-03-03 15:29:47
【问题描述】:

我们决定使用亚马逊 AWS 云服务来托管我们的主要应用程序和其他工具。 基本上,我们有这样的架构

  • TESTSERVER:我们的主应用程序所在的 EC2 实例 部署到。测试人员可以访问 应用程序。
  • SVNSERVER:托管我们的 Subversion 和 存储库。
  • CISERVER:JetBrains TeamCity 安装的 EC2 实例 已配置。

现在,我需要 CISERVER 从 SVNSERVER 签出代码,构建,如果构建成功,则对其进行单元测试,并且在所有测试通过后,应该将构建成功的工件部署到 TESTSERVER。

我已完成配置 CISERVER 以提取代码、构建、测试和生成工件。但我无法管理如何将工件部署到 TESTSERVER。

您有什么建议或程序来完成这项工作吗? 感谢帮助。

P.S:我已阅读此Question 并且不满意。

【问题讨论】:

  • 你真的想仅仅因为构建完成就将构建推送到测试服务器吗?
  • 您对链接问题中的答案有什么不满意的地方?
  • @Yishai:是的,我需要部署到测试服务器[如果你愿意,你可以将它称为开发服务器],以便测试人员可以看到。
  • @Yishai:链接的问题没有给我一个关于如何处理工件的起点。获取工件并部署它的标准程序是什么?我应该使用哪些工具,或者我应该在 Teamcity 上进行哪些配置?
  • 我了解您需要部署它,我只是在问什么是合理的部署触发器。构建完成时自动?如果当时正在测试应用程序怎么办?还是通过运行某种命令来做到这一点更有意义?这就是我的问题的要点。

标签: deployment continuous-integration amazon-ec2 teamcity


【解决方案1】:

更新deployer plugin for TeamCity 允许以多种方式发布工件。

旧答案: 以下是 TeamCity 没有通过 FTP 发布内置工件的问题的解决方法:

http://youtrack.jetbrains.net/issue/TW-1558#comment=27-1967

你可以

  1. 创建一个生成构建工件的配置
  2. 创建一个配置,通过 FTP 发布工件
  3. 在 TeamCity 中将工件依赖项从配置 2 设置为配置 1
  4. 使用手动或自动触发来使用配置 1 生成的工件运行配置 2。这样,您的工件将从构建 1 下载到配置 2 并发布到您的 FTP 主机。

另一种方法是在 TeamCity 中为配置 1 创建一个额外的构建步骤,该步骤通过 FTP 发布您的文件。

希望这会有所帮助, 基尔

【讨论】:

  • 很棒的发现,但我不明白团队城市中的单独项目能给你带来什么。作为构建的一部分,您可以在主项目的 ant 脚本中执行此操作。我猜,除非您只是不使用 ANT 进行主要构建。
  • 我们使用 MSBuild 而不是 ANT。顺便说一句,谢谢 Kir,我将首先尝试通过 FTP 连接我们的服务器,而不是进行此配置。
  • @Yishai... 对于 QA 部署,I/QA 更喜欢拉取系统,因此需要一个单独的部署项目。在 QA 测试时自动部署 CI 构建是破坏性的。相反,当他们准备好进行下一次部署时,QA 会强制构建。 /jhd
【解决方案2】:

我们为部署所做的是,QA 人员登录到系统并运行一个脚本,该脚本通过随时从团队城市存储库中提取来进行部署。如果发生了新的构建,他们可以在团队城市中看到(并收到一封电子邮件),但不管他们只是在他们想要的时候部署。就如何构建这样的脚本而言,团队城市组件涉及检索工件。这就是为什么我的答案引用了通过 URL 获取工件的原因 - 这是任何合理的脚本都可以使用 wget(也具有 Windows 端口)或类似工具来完成的事情。

如果您想要自动部署,您可以安排一个 cron 作业(或 Windows 调度程序)以定期运行脚本。如果什么都没有改变,那也没关系。我怀疑这样做是否明智,因为它可能会通过重新启动相关系统来搞乱某人的测试。

让团队城市在更改发生时推动更改的解决方案不是团队城市开箱即用的事情(据我所知),但您可以自行推出,例如通过以下方式之一触发某些事情团队城市的通知方式,如邮件。我只是质疑它的效用。您是否希望您的系统只是因为有人碰巧签入而随机更改?我认为最好实际请求新版本。

【讨论】:

  • 是的,一个脚本将是一个很好的起点。你会建议我开始编写一个脚本:只是一个包含 WGET 的 .bat 文件,还是一个 PowerShell 脚本来获取工件?你知道任何文章或指南吗?
  • 对于任何严肃的脚本编写,我绝对推荐 PowerShell 在可用的情况下优于 .bat。这是一个关于如何做 wget 的链接:huddledmasses.org/wget-for-powershell
  • 如何引用 TeamCity 构建工件?
猜你喜欢
  • 2017-08-27
  • 2011-06-25
  • 2012-12-09
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多