在VSTS中的dacpac步骤中,可以将数据库设置为仅根据自定义条件运行。条件示例基于VSTS构建信息,我无法从连接的Azure订阅或dacpac元数据中找到使用条件的任何文档。在条件页中,它们有一个版本变量,它看起来可能很有用,但是我找不到关于它的其他信息。
基本上,当触发dacpac步骤时,我希望检查现有数据的元数据,有条件地运行构建步骤,并更新元数据。通过VSTS构建步骤可以做到这一点吗?
发布于 2017-09-13 06:00:08
是的,这是可能的。您可以在VSTS构建定义中添加用户定义的变量(例如具有默认值result的变量0)。并使用值1运行dacpac步骤,并使用值0跳过该步骤。
具体步骤如下:
1. Check if there has new changes for the existing data. 如果元数据仅存储在Azure中,则可以在powershell中引用这边请与Azure连接。如果元数据也存储在使用您构建的存储库(例如git )中,则还可以在存储库中检查更新。
2.根据元数据是否更新的情况设置result变量值。
如果更新了数据,那么用值result更改1变量:
写主机("##vsotask.setvariable variable=result1")
否则,不要更改值(将值保留在0中)
由于数据是在git中管理的,所以可以检查数据是否在git中更新。如果数据被更改,那么将变量result更改为1。详细说明powershell脚本如下:
$files=$(git ~1-仅名)回显“已更改的文件如下:$files”如果($files -contains 'filename')写-主机("##vsotask.setvariable variable=result1")
result变量是1,则可以表示:
和(后继(),eq(变量‘’,'1'))现在,如果具有值result的0,将跳过dacpac步骤,即具有值1的result,则将执行dacpack。
https://stackoverflow.com/questions/46180224
复制相似问题