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

3

当定义GUI发布时,我可以让它由Azure Artifact触发,是否有一种方法可以在YML管道中复制此功能?

我正在一个AZDO租户中构建,在将通用包推送到另一个租户,在那里将定义发布定义,我希望这可以使用YAML完成。但目前我没有看到明显的方法来实现这一点?

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

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

干杯

编辑- 在此输入图片描述


这个问题有任何更新吗?您是否已经根据Sudarshan_SMD的答案解决了这个问题?如果没有,能否请您告诉我关于这个问题的最新信息? - Leo Liu
嘿,@LeoLiu-MSFT,发表的回答都没有回答我的问题。我们的情况不同,多阶段管道和构建完成触发器也不相关。 - bla9x
谢谢您的回复。您能否分享更多关于您的请求的信息,以便我们清楚您想要什么? - Leo Liu
嘿@LeoLiu-MSFT,我已经在问题中添加了一张截图。基本上是在推送工件时触发管道的能力。 - bla9x
嘿@LeoLiu-MSFT,你知道在将GUI流水线中的功能移植到YAML方面有没有取得任何进展吗? - bla9x
我在开发社区上创建了一个功能请求 - https://developercommunity.visualstudio.com/t/Trigger-Multistage-YML-through-push-of-n/1397445 - bla9x
3个回答

2
有没有一种使用Azure Artifacts在YML中触发流水线的方法?但是目前我看不出明显的方法?
是的,你说得对!
这是因为此文档中的内容是推测性的、设计性的和未来功能。
如果你查看所提供的设计文档的上层级别,会有一个状态: Azure Pipelines YAML - Design Docs 该存储库中的设计文档在Azure Pipelines开发过程中的不同阶段创建,以支持协作贡献设计过程。设计文档用于:
- 考虑实现但从未实现的功能 - 已经实现的功能 - 未来功能的想法
该存储库中的设计文档可能不代表Azure Pipelines功能的当前状态。
当您查看官方发布的文档 YAML模式参考-资源 时,它只列出了:
resources:
  pipelines: [ pipeline ]  
  repositories: [ repository ]
  containers: [ container ]

“因此,目前来说,YAML 中的 Azure Artifacts 源应该是未来的功能。希望微软能够尽早实现它。希望这个答案清楚了你的问题。”

0

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

参考:

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

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

  • 资源触发器

    资源触发器在以下场景中非常有用:

    • 当“Helm-CI”流水线在releases/*分支上运行并发布工件时,我想要触发我的流水线。
    • 当作为Helm-CI流水线的一部分发布和测试的工件被标记为“Production”时,我想要触发我的流水线。
    • 当“TFS-Update”流水线完成“Ring2”阶段时,我想要触发我的流水线以便进行一些诊断。

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

  • Webhook 触发器 在 CI 流程的末尾,您可以添加一个任务来访问 Webhook URL,从而触发 CD。

希望这有所帮助。


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 dependsOn 第一阶段的 prepare
附注:多阶段管道目前处于预览状态。如果您从预览功能中启用它,您还将能够看到一个漂亮的阶段可视化表示。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接