【问题标题】:How to trigger azure yml pipeline on tagging master branch only如何仅在标记主分支上触发 azure yml 管道
【发布时间】:2021-01-29 02:45:15
【问题描述】:

关于 azure yml 管道触发器

如何达到以下要求 我想触发我的 azure yml 管道

  • 如果 PR 合并到 master 分支,应该在 master 分支上触发管道
  • 如果在 master 分支上添加了 git 标签,则应该在 master 分支上触发管道。
  • 如果在非主分支(如开发、功能分支)上添加了 git 标签,则不应触发管道
  • 如果 PR 已合并或在这些分支上发生提交,则应在非主分支上触发管道

如何处理这个任何想法,我现在已经设置了以下触发器?

trigger:
  branches:
    include:
    - develop
    - master
    - features/*
  paths:
    exclude:
    - README.md
    - azure-pipelines.yml
  tags:
    include:
    - refs/tags/*-RELEASE

【问题讨论】:

    标签: azure azure-devops yaml azure-pipelines


    【解决方案1】:

    在Azure DevOps Service中,yaml build只是触发当前分支,比如dev分支中的.yml文件,加上Push triggertrigger - master,然后在master分支中push代码,不会触发构建。

    作为一种解决方法,我们需要更新不同分支中的.yml 内容。

    例如,如果我们在 master 分支中创建 YAML 构建,它将在 master 分支中创建 azure-pipelines.yml 文件。

    • 如果 PR 合并到 master 分支,应该在 master 分支上触发管道
    • 如果在 master 分支上添加了 git 标签,应该在 master 分支上触发管道。

    我们可以通过添加以下推送触发器来做到这一点

    trigger:
      batch: true
      branches:
        include:
        - master
      tags:
        include:
        - refs/tags/*-RELEASE
    
    • 如果在非主分支(如开发、功能分支)上添加了 git 标签,则不应触发管道
    • 如果 PR 被合并或在这些分支上发生提交,则应在非主分支上触发管道

    然后创建分支develop和features,里面还包含文件azure-pipelines.yml,编辑文件内容。

    trigger:
      batch: true
      branches:
        include:
        - develop #in the develop enter develop, in the feature branch, we need to update it to feature.
      tags:
        exclude:
        - refs/tags/*-RELEASE
    

    更新1

    【讨论】:

    • 这真的有用吗? Docs on tag filters“如果您指定标签与分支过滤器结合使用,则如果满足分支过滤器或满足标签过滤器,则触发器将触发。例如,如果推送的标签满足分支过滤器,则即使标签被标签过滤器排除,管道也会触发,因为推送满足分支过滤器。” 在你的最后一个示例中,如果在 develop 分支上完成提交,即使它被标记它也会运行RELEASE?
    • 另外,在不同的分支上维护不同的azure-pipelines.yml文件时如何处理合并和PR?例如,当从 master 中取出一个新的特性分支时,azure-pipelines.yml 需要被编辑。当合并回来时,它将用特性分支的名称覆盖 master 中的内容,并且不会为 master 上的新提交触发管道,因为它现在包含特性分支的触发器而不是 master
    • 对不起,我只是测试提交的代码并单独添加标签。如果基于devlop分支创建新分支,推送代码并添加标签release,然后创建Pull Request并合并代码,就会触发构建,构建由最新的提交触发(“Merge PR Commit” ),它不会检查其他提交标签。
    • 在不同的分支中,azure-pipelines.yml文件不同,创建PR时azure-pipelines.yml文件会发生冲突,可以使用扩展名Pull Request Merge Conflict Extension解决冲突,选择保留目标分支文件。内容
    • 但是这个 yml 管道应该是跨分支通用的。
    猜你喜欢
    • 2023-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 1970-01-01
    • 2020-03-17
    • 2022-11-04
    • 2020-04-22
    • 2021-11-23
    相关资源
    最近更新 更多