如何使用TFS从给定特定内部版本号的放置位置进行部署

时间:2011-05-19 14:46:18

标签: tfs msbuild tfs2010 continuous-integration msdeploy

尝试使用TFS实现CI。我的构建工作正常,项目都很好地分解在drop文件夹中。我的问题是,我如何允许QA团队排队部署“构建”(没有实际建筑物),他们可以在那里提供特定的构建号。然后使用此内部版本号部署该特定构建drop文件夹中的位。

最终目标是在队列构建对话框中给它们一些参数(已经完成),然后开始部署过程。我想过使用TFS Deployer,尝试创建自己的部署流程模板,然后从.proj文件执行powershell脚本。似乎每个选项都有它自己的一系列复杂功能。

有人能给我一些关于实现这个目标的最佳方法的指导吗?

3 个答案:

答案 0 :(得分:0)

我最近使用以下方法做了这个:

  1. 选择部署目标(选择计算机,站点,多个配置项数据)。
  2. 自定义.config文件转换以匹配部署目标(连接字符串等)。
  3. 执行MSDeploy任务以使用Web Deploy 2.0将服务器构建到服务器。
  4. PSExec在服务器上远程执行appcmd命令以重新启动特定站点
  5. 重复服务,使用MSDeploy推送。
  6. 构建脚本为服务生成安装/卸载脚本。
  7. PSExec for services(停止,卸载,安装,启动)。
  8. 这在MSBuild文件中保持隔离,该文件可以从传递构建丢弃编号的任何命令行执行,或者可以使用MSBuild任务添加到TFS构建定义中,键入您已经存在的额外参数已经建立。

答案 1 :(得分:0)

执行此操作的方法是在构建质量更改时触发部署。例如,当质量改为“准备QA”时,更改事件会触发从现有构建文件夹部署到QA系统。

请参阅Publish to FTP after TFS 2010 build quality changeAuto-Deployment Using Microsoft Web Deploy on Build Quality Change Event of TFS 2010

答案 2 :(得分:0)

您可以限制有权启动构建的用户,并通过此权限为您的QA团队启动手动构建。

在您的TFS构建脚本中,您可以创建QA团队所需的部署步骤。默认情况下,您可以根据参数使其成为条件,并将其设置为不部署。您可以将此设置为true或false,具体取决于它是CI构建还是手动构建。

当您准备好让QA对您的代码进行测试时,您需要为其提供标签,他们只需将其传递出去即可构建和部署它。

这样做的好处在于您可以控制哪些已签署的代码版本,您可以将其交给QA团队。

您还有一份报告,其中列出了传递给QA的具体代码和工作项。