使用 TeamCity 构建后如何部署?

Posted

技术标签:

【中文标题】使用 TeamCity 构建后如何部署?【英文标题】:How to deploy after a build with TeamCity? 【发布时间】:2010-12-31 13:04:54 【问题描述】:

我将 TeamCity 设置为我的构建服务器。

我的项目设置好了,它正在从 subversion 正确更新,并且构建正常。

那么接下来呢?

理想情况下,我希望它自动部署到测试服务器,手动部署到实时/登台服务器。

最好的方法是什么?

由于我使用的是 C#/ASP.Net,我是否应该将 Web 部署项目添加到我的解决方案中?

【问题讨论】:

你见过 Inedo 的 BuildMaster 吗?我看到的一个常见工作流程是将构建工件从 TeamCity 中提取出来,并使用 BuildMaster 部署/配置到各种服务器。快速参考文章:inedo.com/support/kb/1031/…(免责声明:我为 Inedo 工作) 我之前也提出过类似的建议,但我不为 Inedo 工作。值得一看。 【参考方案1】:

通常我所做的是创建一个 Wix 安装程序。可以使用 MsBuild 构建 Wix 项目,因此您应该没有问题。

我还建议查看以下用于自动部署的 MsBuild 扩展:

http://www.codeplex.com/MSBuildExtensionPackhttp://msbuildtasks.tigris.org/

我希望这会有所帮助。

【讨论】:

【参考方案2】:

我已经写了一篇很长的博客文章,讨论这个话题,你可能会感兴趣:

http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

基本上:

安装 Web 部署项目 将 Web 部署项目添加到您的解决方案中 将解决方案配置管理器设置为具有“部署”构建配置 让团队城市在运行构建时使用此构建开关 喝杯啤酒,惊叹于你的自动魔法的魅力

【讨论】:

注意,这个答案不再与 vs2013+ 相关,因为他们删除了 Web 部署项目【参考方案3】:

本文介绍了如何从 TeamCity 调用 Microsoft 的 WebDeploy 工具以将 Web 应用程序部署到远程 Web 服务器。我一直在使用它来部署到测试 Web 服务器并在签入时运行 selenium 测试。

http://www.mikevalenty.com/automatic-deployment-from-teamcity-using-webdeploy/

    安装 WebDeploy 启用 Web 配置转换 配置 TeamCity BuildRunner 配置 TeamCity 构建依赖项

适用于我的应用程序的 MSBuild 参数是:

/p:Configuration=QA  
/p:OutputPath=bin  
/p:DeployOnBuild=True  
/p:DeployTarget=MSDeployPublish  
/p:MsDeployServiceUrl=https://myserver:8172/msdeploy.axd  
/p:username=myusername  
/p:password=mypassword  
/p:AllowUntrustedCertificate=True  
/p:DeployIisAppPath=ci  
/p:MSDeployPublishMethod=WMSVC

【讨论】:

部署完成后如何设置邮件通知? @Michael Valenty:我尝试了给定的解决方案MSBuild.exe C:\BuildAgent\work\4c7b8ac8bc7d723e\WebService.sln /p:Configuration=Release /p:OutputPath=bin /p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish /p:MsDeployServiceUrl=https://204.158.674.5/msdeploy.axd /p:username=Admin /p:password=Password#321 /p:AllowUntrustedCertificate=True /p:DeployIisAppPath=Default WebSite/New /p:MSDeployPublishMethod=WMSVC。它给了我一个错误`MSBUILD:错误MSB1008:只能指定一个项目。切换:网站/新建`【参考方案4】:

还请考虑来自 TeamCity 开发人员之一的 Deployer 插件:http://confluence.jetbrains.com/display/TW/Deployer+plugin

【讨论】:

部署器插件现已集成到 TeamCity 10+【参考方案5】:

我们正在使用Octopus Deploy 来管理我们在 Team city 之上的环境。

作为一个构建过程,我们有一个八达通发布和八达通部署在八达通中创建一个发布,然后它也会自动部署;

由于 Octopus 管理我们的环境,它还提供了我们广泛使用的变量,并且可以使用相同的构建来一起创建一个新环境。

【讨论】:

以上是关于使用 TeamCity 构建后如何部署?的主要内容,如果未能解决你的问题,请参考以下文章

TeamCity 构建链配置

如何使用 TeamCity 部署到环境,然后针对该环境运行测试?

Teamcity 构建链问题

只有存在新构建时,Teamcity 每晚构建

如何在Teamcity中设置超时和活动的多运行构建器

TeamCity SQL部署