首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TFS -在部署前针对包运行Powershell脚本

TFS -在部署前针对包运行Powershell脚本
EN

Stack Overflow用户
提问于 2014-10-25 13:51:12
回答 2查看 799关注 0票数 0

我目前在TFS 2013中设置了CI,它执行以下操作

  1. 每次提交到分支时,从Git中提取代码
  2. 构建解决方案
  3. 运行N个单元测试解决方案
  4. 针对javascript运行Jasmine前端测试
  5. 通过WebDeploy成功部署到选定的服务器。

我现在已经在服务器上安装了Grunt和NodeJS,以便在步骤5-6之间对Javascript进行一些操作。有没有人对如何做到这一点有任何建议?

我尝试过在bin/_PublishedWebsites目录和src目录上成功地缩小javascript的测试脚本,但这似乎并没有持续到部署服务器上。事实上,由于对_PublishedWebsites文件的最大字符限制(argh),_PublishedWebsites路由将构建文件夹置于不可删除的状态。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-27 10:39:47

通过在用于部署的pubxml文件中添加两个额外步骤,我成功地完成了这一工作。

首先,我添加了一个依赖powershell脚本,它运行NPM安装和执行任务。

代码语言:javascript
复制
<PipelineDependsOn>
  CustomBeforePublish;
  $(PipelineDependsOn);
</PipelineDependsOn>
<Target Name="CustomBeforePublish">
<Exec Command="powershell.exe -ExecutionPolicy Unrestricted -file  Pre_Deploy_Javascript_Build.ps1 $(ProjectDir)"/>
</Target>

跟着这个。我现在已经创建了项目中不存在的其他文件。我现在必须确保这些文件被公布。为了做到这一点,我又增加了一步。

代码语言:javascript
复制
 <CopyAllFilesToSingleFolderForMsdeployDependsOn>
  CopyMinJSFiles;
  $(CopyAllFilesToSingleFolderForMsdeployDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn >
<Target Name="CopyMinJSFiles">
<ItemGroup>
  <_MinJSFiles Include="$(ProjectDir)\App\*.js" />
  <FilesForPackagingFromProject  Include="%(_MinJSFiles.Identity)">
    <DestinationRelativePath>App\%(Filename)%(Extension)</DestinationRelativePath>
  </FilesForPackagingFromProject>
</ItemGroup>

票数 0
EN

Stack Overflow用户

发布于 2014-10-26 14:55:57

您应该切换到使用Visual 2013版本管理(也适用于2012年)。这使您可以参数化您的发行版,并在多个环境中推送相同的输出。非常可配置,甚至确保您需要的工具最终部署到您要部署的服务器上。支持木偶,厨师,DSC,并创建自己的。

http://nakedalm.com/installing-release-management-server-tfs-2013/

关于概述:http://nakedalm.com/building-release-pipeline-release-management-visual-studio-2013/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26563123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档