使用 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 构建后如何部署?的主要内容,如果未能解决你的问题,请参考以下文章