构建最后提交的SQL Script VSTS

时间:2017-11-24 15:21:37

标签: azure-devops azure-pipelines azure-pipelines-build-task

我是VSTS的新手,我想知道如何始终只构建最新提交的SQL脚本。

示例:我从我的存储库提交了example.sql,VSTS Build只需要获取" example.sql"压缩它并发布工件以准备发布。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

VSTS 构建当前工作树的所有现有文件/脚本(仓库的指定分支)。

如果要将最新更改的文件压缩并发布为工件,则可以添加PowerShell任务(对于linux和mac,您可以使用Shell脚本任务)作为助手。详细说明检测已更改/添加的步骤如下:

<强> 1。使用PowerShell任务获取已更改/添加的文件,并将文件从$(Build.SourcesDirectory)复制到另一个目录(例如$(Build.ArtifactStagingDirectory)\files)。 Powershell脚本如下:

$files=$(git diff HEAD HEAD~ --name-only)
echo $files
$temp=$files -split ' '
$count=$temp.Length
echo "Total changed $count files"
New-Item -ItemType directory -Path $(Build.ArtifactStagingDirectory)\files
For ($i=0; $i -lt $temp.Length; $i++)
{
  $name=$temp[$i]
  echo "this is $name file"
  if (Test-Path "$(Build.SourcesDirectory)\$name")
    {
      Copy-Item $(Build.SourcesDirectory)\$name $(Build.ArtifactStagingDirectory)\files
    }
}

<强> 2。使用存档文件任务压缩更改的文件。例如从$(Build.ArtifactStagingDirectory)\files目录到$(Build.ArtifactStagingDirectory)\pack\$(Build.BuildId).zip

enter image description here

第3。使用Publish Build Artifacts任务从$(Build.ArtifactStagingDirectory)\pack目录发布压缩文件

enter image description here