Azure Devops-基于对相应文件夹的提交的触发器发布管道

时间:2020-10-15 14:15:44

标签: azure azure-devops azure-pipelines-release-pipeline

需要一些输入,以便我们如何基于对master分支中特定文件夹的提交来触发发布管道以将相应的.json文件复制到Azure存储帐户。

当前,当API1- .json文件发生更改时,所有.json文件都将被复制到存储帐户,这是通过 Azure复制文件任务完成的。

大师
---应用
--- API1 (文件夹1)
sample.json
--- API2 (folder2)
sample.json
--- API3 (文件夹3)
sample.json

注意:以上不是git存储库,它是存储API文件的常规存储库,我不使用构建管道来获取工件,在发布管道中,im直接指Azure git存储库。

如果仅将API1 .json文件提交到相应的文件夹(API1)中并复制到特定的存储帐户,该怎么办?

我们可以使用单个Azure复制任务来实现这一目标,还是应该创建多个Azure复制任务?

1 个答案:

答案 0 :(得分:0)

如果仅将API1 .json文件提交到各自的文件夹(API1)中并复制到特定的存储帐户,该怎么办?

我们可以通过单个Azure复制任务来执行此操作,我们可以在来源字段中输入文件路径,然后通过 RM存储帐户字段选择存储帐户。

>

存在提交到相应文件夹(API1)

如果构建了发布管道工件,我们可以通过this API检查构建提交信息以获取最新的提交ID(注意:提交ID在响应正文中为sourceVersion),那么我们可以获取该提交通过提交ID的文件夹路径

GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commits/{commitId}/changes?api-version=6.0-preview.1

我们可以确定文件路径并将结果保存到新变量(例如A1)中,然后在任务eq(variables['A1'], 'true')中添加条件Azure copy来运行它。

如果在多次提交后运行构建,则需要获取最新的构建号,并且在构建号之前,然后获取这些提交ID。并通过提交ID获取提交日期,然后使用rest API列出构建之间的所有提交。并通过代码for检查提交路径。您可以参考此answer以获得更多详细信息。