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

Azure Devops - Trigger Release pipeline based on commit to respective folder

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

目前,当API1-.json文件发生变化时,所有.json将被复制到通过[=22=完成的存储帐户]Azure 复制文件任务.

硕士
--- 应用
--- API1(文件夹1)
sample.json
--- API2(文件夹2)
sample.json
--- API3(文件夹3)
sample.json

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

如果提交到相应文件夹 (API1) 并复制到特定存储,我如何只复制 API1 .json 文件帐户?

我们可以使用单个 Azure 复制任务实现此目的还是应该创建多个 Azure 复制任务?

How can I only copy the API1 .json file if there is commit to the respective folder(API1) and copy to specific storage account?

我们可以通过单个 Azure 复制任务来完成此操作,我们可以通过字段 在字段 和 select 存储帐户中输入文件路径]RM 存储账户.

there is commit to the respective folder(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),然后在任务Azure copy中添加条件eq(variables['A1'], 'true')到运行它。

如果您 运行 在多次提交后构建,您需要获取最新的构建号和之前的构建号,然后获取这些提交 ID。并通过提交 ID 获取提交日期,然后使用其余 API 列出构建之间的所有提交。并通过代码 for 检查提交路径。您可以参考这篇了解更多详情。