我们有一个发布定义,其中提供了一系列asp.net核心服务以及Angular应用。
大多数服务不是很经常更新,所以问题是如何比较已部署到环境中的工件版本,以及如何跳过以前是否已部署了最新版本?
我们正在准备多个环境。
答案 0 :(得分:1)
我不认为有可能,至少在本地,您可以计算文件哈希值,如果匹配则不要部署,另一种选择是在构建应用程序时使用路径触发器进行过滤。例如,您的目录结构如下:
root
|--app1
|--app2
etc
您可以像这样在yaml构建中定义路径过滤器:
trigger:
paths:
include:
- app1/*
- sharedlibs/* (if you have them)
这种方式构建仅在这些目录中的文件有任何更改时才会触发
答案 1 :(得分:1)
您可以添加其他发行环境,以通过PowerShell检查当前工件的版本(例如Build.SourceVersion,选中variables in release),然后如果已经成功发行,则使任务失败。
对于暂存环境,请选择“后环境”选项,然后选择上一个环境。
另一方面,由于您提到的大多数服务不是很经常更新,因此可以使用4c74356b41的建议来过滤构建,仅构建和发布所需的更改。