3

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

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

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

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

我在 CI 相对较新,所以我需要尽可能多的建议!

4

3 回答 3

2

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

我推荐它的原因是:

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

  2. 它将重用您来自 TeamCity 的工件;所以你让 TeamCity 做建筑,让BuildMaster处理促销活动。

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

此屏幕截图显示了部署计划的示例,包括部署前和部署后步骤

于 2013-12-18T06:26:37.140 回答
2

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

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

我建议遵循 Troy Hunt 撰写的精彩博客系列中的方法 -你的部署错误

我已经在我当前的项目中建立了这种方法,它实现了一个梦想。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

希望这可以帮助

于 2014-01-03T17:01:44.713 回答
2

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

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

path/to/build => latest.zip. 

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

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

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

于 2013-12-12T10:13:26.373 回答