根据项目代码更改选择性地运行发布任务



我们使用VSTS进行构建和发布管理,并使用CI/CD。通常,我们的解决方案包括一个web应用程序项目和一个数据库项目。

我们当前的发布任务使应用程序离线(使用app_offline.htm),发布数据库,然后发布web应用程序。发布数据库项目通常不会导致任何更改,因为由于CI/CD,我们在web应用程序上更新代码的频率远高于更改数据库架构。

有没有一种方法可以只在检测到git存储库中数据库项目代码发生更改时运行数据库发布任务(使用WinRM)?

编辑:这本身不是问题,因为通常当DACPAC发布时,不会有任何活动。但是,我一直请求使用/p:BackupDatabaseBeforeChanges=true标志备份数据库,即使没有更改,该标志似乎也会备份数据库。这是大型数据库的问题。

简单的方法是可以将web项目和数据库项目分离为两个构建定义。

  1. 创建新的构建定义
  2. 在触发器选项卡中启用连续集成
  3. 指定包含数据库项目的路径筛选器
  4. 修改Visual Studio生成任务,在MSBuild Arguments框中指定/t:[database project name]参数以仅生成数据库项目
  5. web项目的相同步骤
  6. 创建新的相关定义
  7. 为前两个构建定义添加工件,并启用连续部署触发器
  8. 添加两个环境(例如数据库、web)
  9. 打开环境(例如数据库)的预部署条件
  10. 启用工件过滤器并选择相应的工件(例如数据库构建工件),指定构建分支(可以指定*,表示所有分支)
  11. 添加任务以仅在此环境中部署数据库
  12. web环境的相同步骤

答案是-我想要的是不可能的。

最新更新