用于将非编译文件热插入VSO和Octopus管道的CI

时间:2018-03-22 11:16:26

标签: continuous-integration azure-devops octopus

背景:

目前我们手动将一个内置于软件包中的git dev分支部署到VSO中,一旦构建了该软件包,它就会部署到Octopus并占用该网站很长一段时间,因为所有构建的软件包都加载到每个服务器中网站坐...但老实说,很多错误修复最终都在js文件中,很容易被热交换...而且等待糟糕的OP和支持来做所有这些都很烦人这只是一个微小的变化。

白日梦:

我想设置CI,允许将js,css,cshtml,html文件热交换到VSO和Octopus ......这样可以快速发布javascript文件中的小小变化,无需部署......

...并且还有另一个选项允许我说,“看,我已经改变了一些csharp文件,所以我需要一个构建的包被推送到VSO和Octopus”。如果你愿意,可以手动重建。

问题:

我错过了在Google中搜索此词汇的词汇,并想知道你们是否可以帮我设置这个词。

1 个答案:

答案 0 :(得分:0)

您可以在包中包含已修改的文件(保留文件夹结构),然后将此包推送到Octopus服务器并使用此包进行部署,然后将替换必要的文件。

我的IIS部署工作流程:

  1. 具有聆听触手模式的新部署目标
  2. 将部署添加到Octopus项目的IIS流程模板
  3. 在Process
  4. 的Configure Features窗口中启用自定义安装目录功能
  5. 指定正在处理的自定义安装目录路径
  6. 构建任务:

    1. 添加复制文件任务以复制必要的文件(例如js)
    2. 添加包应用程序任务以打包这些文件(保留文件夹结构)
    3. 将推送包添加到八达通任务
    4. 添加创建八达通发布任务
    5. 另一方面,您可以包括所有已发布的文件包(使用文件系统发布测试),然后使用该包进行部署,Octopus可以比较文件并只更换修改后的文件({webapp} .dll将被替换也检查了目标服务器上的Created,Modified time)

      关于在构建期间获取更改的文件,您可以调用Get commit with Changed items REST API,然后通过Logging Command创建/修改构建变量(例如depAll)(例如PS:Write-Host“## vso [ task.setvariable variable = depAll];]是“)对每个已更改的文件结果,然后在任务条件(每个任务的控制选项)中使用此变量来确定需要运行哪些任务。 Specify conditions for running a task