有没有一种方法可以在YML中使用Azure工件来触发管道?

时间:2019-11-14 04:16:15

标签: azure azure-devops

在定义GUI版本时,我可以使其由Azure Artifact触发,是否可以在YML中为管道复制此版本?

我正在建立一个AZDO租户,将通用软件包推送到另一个租户,在那里将定义发行版定义,我希望可以在YAML中使用。但是我目前没有一个明显的方法可以做到这一点?

我看到有一个设计文件提到了包装,但是没有提供更多详细信息

https://github.com/microsoft/azure-pipelines-yaml/blob/master/design/pipeline-resources.md

欢呼

编辑- enter image description here

3 个答案:

答案 0 :(得分:1)

  

是否有一种方法可以在YML中使用Azure Artifacts触发管道?-但是我目前没有一个明显的方法?

是,是。你是对的 !

因为该文档中的内容是推测性,设计性和未来功能

如果您检查提供的设计文档的上层,则处于以下状态:

Azure Pipelines YAML - Design Docs

  

此回购中的设计文档是在以下期间的不同时间创建的   开发Azure管道以支持协作   对设计过程的贡献。设计文件适用于

     
      
  • 考虑实施但从未实施的功能
  •   
  • 已实现的功能
  •   
  • 功能的未来想法
  •   
     

此存储库中的设计文档可能代表当前状态   管道功能的功能。

当您查看正式发布的文档YAML schema reference-Resources时,它仅列出:

resources:
  pipelines: [ pipeline ]  
  repositories: [ repository ]
  containers: [ container ]

因此,目前,YAML中的Azure Artifacts源应该是将来的功能。希望MS能够提前一天实现。

希望这个答案可以清除您的问题。

答案 1 :(得分:0)

YAML语法尚不支持构建完成触发器。创建YAML构建管道后,可以使用经典编辑器指定构建完成触发器。

参考:

https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=azure-devops&tabs=yaml#build-completion-triggers

尽管我建议您使用以下机制触发发布:

  • 资源触发器

    在以下情况下资源触发将很有帮助:

    • 当在发布/ *分支上运行的“ Helm-CI”管道发布工件时,我想触发我的管道。
    • 当工件作为Helm-CI管道的一部分进行发布和测试并标记为“生产”时,我想触发我的管道。
    • 我想在“ TFS更新”管道完成“ Ring2”阶段后触发管道,以便我可以运行一些诊断程序。

https://github.com/microsoft/azure-pipelines-yaml/blob/master/design/pipeline-triggers.md

  • Webhook触发器 在CI拼写的最后,您可以添加一个任务来访问webhook url,这是触发CD的一种方法。

希望有帮助。

答案 2 :(得分:0)

您可以使用多阶段管道来实现此目的。 一个阶段将包括一项任务,该任务会将您的工件推送到提要。下一阶段将包含您在推送工件后要执行的其他作业。

例如:

stages:
#Stage for preparing the Artifact    
   - stage: prepare
      jobs:
       - job: prepare
      pool:
          vmImage: xx        
      steps:
        - task: PublishBuildArtifacts@1
          inputs:
            pathToPublish: xx
            artifactName: xx

# Next stage in your pipeline
- stage: build
  dependsOn: prepare
  jobs:
  steps:
    - task: xx

请注意,第二阶段 build 取决于阶段 prepare

ps:目前正在预览多阶段管道。如果您通过预览功能启用了此功能,那么您还将能够看到阶段的漂亮视觉呈现。