如果推送 git 标签,Azure 管道只会添加额外的 docker 标签

Azure pipelines only add extra docker tag if a git tag is pushed

我正在 azure pipelines 中构建一个 CI pipeline 并且正在努力解决以下问题,我有一个始终被触发的构建步骤。因此,我将我的图像提交哈希作为标记以供将来参考。但是,我想在触发推送时添加 gittag 名称。有没有办法有条件地添加这个标签?我当前的任务是:

- task: Docker@2                                                               
  inputs:                                                                      
    containerRegistry: 'my-registry'                                           
    repository: '$(System.TeamProject)/$(Build.Repository.Name)'               
    command: 'buildAndPush'                                                    
    Dockerfile: 'Dockerfile'                                                   
    tags: |                                                                    
      $(Build.SourceVersion)                                                   
      $(Build.SourceBranchName)

这会添加标签,但是每当对分支的提交是触发器时,我也会得到一个分支标签(develop / main),我想阻止这种情况。

在 YAML 管道中,您可以使用 if 表达式来有条件地动态设置任务输入(参见 here)。

通过此功能,您可以在不同条件下为任务的输入设置不同的值。这个应该可以满足你的需求。