如何基于提交消息触发Azure开发人员构建管道?

时间:2020-01-06 07:18:01

标签: git azure azure-devops gitlab build-pipeline

我正在构建一个Azure Devops项目。该项目同时具有UI和后端应用程序代码。两种代码都作为一个项目放置在GitLab中。但是不同的团队正在为UI和后端工作。 我需要配置两个构建管道,一个用于UI更改,另一个用于后端更改。

我需要的是基于提交消息触发特定的管道。 即如果进行了UI更改,则提交消息中将包含关键字“ UI_CHANGES ”。 Azure DevOps应该认识到这一点并触发UI生成管道。

当我用Google搜索时,我知道Azure DevOps不支持基于提交消息的筛选来触发新的构建管道。

我可以在这里使用Git标签吗?如果是,请指导我如何使用它。 也欢迎任何其他可能的想法!

谢谢。

2 个答案:

答案 0 :(得分:0)

您无需根据提交消息运行管道,您可以创建两个管道,并在触发器中确定何时使用路径过滤器运行哪个管道:

enter image description here

答案 1 :(得分:0)

在我看来,您需要某种“路径过滤器”。 Azure DevOps具有集成的“路径筛选器”,但这仅适用于Azure Devops上托管的存储库。

我的建议在当前情况下可以做什么。

  • 将存储库移至Azure DevOps 这是我眼中最好的解决方案,但如果出于任何原因必须坚持使用GitLab,则不适用

    • 专业人士:您在同一位置拥有仓库和管道
    • 缺点:您必须移动存储库并设置新的成员资格等。
  • 使用GitLab构建/发布 我对GitLab中的管道没有经验,所以我不能说这是否是可行的解决方案

    • 专业人士:您在同一位置拥有回购和管道,无需移动
    • 我不确定如何在GitLab上进行构建/发布(既不赞成也不反对)
  • 将您的GitLab存储库镜像到Azure DevOps 您可以使用this extension不断地将您的GitLab存储库镜像到Azure DevOps,并使用管道的集成路径筛选器进行构建/发布 >

    • 专业人士:您无需移动,但可以使用Azure DevOps的管道
    • 缺点:您依赖于仅“连接”两个独立存储库的扩展。
  • 将您的GitLab存储库与Azure DevOps连接并在管道中执行逻辑部分,我认为这是最不利的解决方案,因为您必须在管道中手动执行所有逻辑操作。不过,如果您对此解决方案感兴趣,我建议您进一步查看this extension 。但这并不像默认的路径过滤器那样舒适。

更新 我只是对该扩展进行了更深入的了解,但我认为这不符合您的需求。抱歉不过,您无需扩展即可直接连接到GitLab存储库。 Just create a PAT for reading your reposadd a Service Connection for "Other git" in Azure DevOps
如前所述,您可以对管道中的内容进行逻辑处理(不利)。

干杯和好运!