从TeamCity部署构建

时间:2013-12-12 10:02:33

标签: azure teamcity continuous-deployment octopus-deploy

我们使用Team City作为CI构建服务器,并将其配置为成功构建和测试。

现在我的任务是将已编译的项目部署到Azure中的生产VM上。这些项目包括前端代码(HTML和Javascript),我们的node.js代码和我们的依赖.NET dll。这基本上是我们的端到端Web应用程序,我们可以在本地启动和运行。

已经查看了章鱼部署,但这是一个问题,因为我不熟悉这个工具,而不仅仅是我们需要部署的nuspec包,它是一个完整的文件夹结构。

1.。)我如何在TeamCity中创建此文件夹结构的zip文件? 2.)我已经创建了这个zip文件,如何将其部署到VM并解压缩

我在CI方面比较新,所以我需要尽可能多的建议!

3 个答案:

答案 0 :(得分:2)

我只能回答第一个问题,因为我们在linux实例上使用了amazon。

在我们的CI环境(teamcity)中,我们在构建配置中指定工件 - >常规设置标签 - >编辑工件:

path/to/build => latest.zip. 

Teamcity发现它会根据工件扩展名压缩文件夹。然后我们将zip文件上传到S3。

第二个问题我无法回答,因为我们使用linux。但我们只是创建一个虚拟映像,在启动时从S3获取latest.zip文件,解压缩并重新启动Web服务器。

编辑:如果您决定以其他方式部署,请确保创建与latest.zip文件的工件依赖关系。您还可以使用自定义构建参数创建构建以部署构建。

答案 1 :(得分:2)

对于问题#2,您可以采取多种方法。我不是该领域的专家,但我见过的最好的Windows堆栈是BuildMaster

我推荐它的原因是:

  1. 它清除工件的工件升级和部署;非常清楚哪些构建被拒绝,哪些已被提升。

  2. 它将重用TeamCity中的工件;所以你让TeamCity进行建设,让BuildMaster处理促销活动。

  3. 它将处理将工件部署到您的服务器,并可以运行部署前和部署后的步骤,例如重新启动服务,执行脚本以处理缩小拉链等等。

  4. This screenshot显示了部署计划的示例,包括部署前和部署后的步骤

答案 2 :(得分:2)

发布配置文件(引擎盖下的MSBuild)和Web Deploy就是您所需要的。

两种MS技术。发布配置文件作为VS的一部分发布,MS部署可以使用目标服务器上的管理服务轻松部署。

我建议按照Troy Hunt这个伟大博客系列中的方法进行操作 - Your Deploying It Wrong

我已经在我目前的项目中设置了这种方法,它实现了一个梦想。 Web部署通常是首选的交付机制,因此我相信您不会很难设置它。

我的MSBuild部署步骤具有以下命令行参数(为了重新使用,引入了一些构建参数)。部署需要20秒!

/P:Configuration=%env.Configuration% 
/P:DeployOnBuild=True 
/P:DeployTarget=MSDeployPublish 
/P:MsDeployServiceUrl=https://%env.TargetServer%/MsDeploy.axd 
/P:AllowUntrustedCertificate=True 
/P:MSDeployPublishMethod=WMSvc 
/P:CreatePackageOnPublish=True 
/P:UserName=INTERNAL\webdeployments 
/P:Password=*********
/p:SkipExtraFilesOnServer=true

希望这有帮助

相关问题