在自动部署到QA环境期间,如何远程解压缩?

时间:2010-08-03 10:23:11

标签: ftp continuous-integration zip nant

我正试图找到一种方法来自动部署到我们的QA环境。问题是我们的版本非常大,因此需要在QA服务器上进行Zipped,FTP'd然后解压缩。我不确定如何最好地远程解压缩。

我可以想到几个选项,但没有一个听起来合适:

  • 使用PsExec在QA服务器上执行远程命令行调用以解压缩版本。
  • 在QA服务器上托管一个Web服务,该服务解压缩该版本并将其复制到正确的位置。完成上传文件后,我们的版本可以调用此服务。
  • 在QA服务器上托管一个监视文件位置并进行解压缩的Windows服务。

但这些都不是很好。我想知道其他人是如何解决这个问题的?

PS:我们使用CruiseControl.NET来执行构建,压缩和FTP的NAnt脚本。

2 个答案:

答案 0 :(得分:2)

您可以使用rsync之类的工具,而不是压缩和解压缩;它可以在文件传输过程中透明地压缩数据。 -z选项告诉rsync使用压缩。

但我认为你是在Windows环境中,在这种情况下你可以使用cwRsync(“rsync for Windows”)。

根据您对QA框的访问权限,这可能不是一个可行的解决方案。你需要:

  • 在远程计算机上安装cwRsync服务器
  • 允许通过任何防火墙的流量。

答案 1 :(得分:2)

在我工作的最后一个地方,我们有一个人在CI盒子上写了一个Windows服务来解压缩。 TFS Team Server完成构建并通知服务压缩已完成的构建并将其复制到CI框。 CI框在新文件上获取并解压缩。它可能有点沉重,但它运行良好 - 并且他认识到将所有操作记录到事件日志中,因此很容易诊断服务器是否已重置且服务尚未启动。

更新:我们希望在该过程中改进的一件事是让CI盒上的服务检查zip文件和超过x个月的未压缩文件,以用于清除目的。我们经常耗尽磁盘空间(这是我们很少看到的虚拟机),并且必须在发生时手动清除旧版本。