首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您能否为资源创建模板,并将其与YAML管道中的步骤结合起来?

您能否为资源创建模板,并将其与YAML管道中的步骤结合起来?
EN

Stack Overflow用户
提问于 2021-05-25 15:45:06
回答 2查看 797关注 0票数 0

我有一个管道,它有一个像这样的部分,列出将触发管道的管道。

代码语言:javascript
复制
resources:
  # List all the microservice pipelines to be watched plus infrastructure, the pipeline name is the name
  # of the stack.  Note template-maven and template-gradle are not to be part of this build.
  pipelines:
    - pipeline: auth
      project: services
      source: auth
      branch: master
      trigger:
        branches:
          include:
            - master
    - pipeline: ai
      project: services
      source: artificial-intelligence
      branch: master
      trigger:
        branches:
          include:
            - master
    - pipeline: ui
      project: frontend
      source: ui CI
      branch: master
      trigger:
        branches:
          include:
            - master

然后,我就有了一个包含以下步骤的作业(因为deployment提取了所有文件,所以我只需要从每个管道中提取一个文件夹)

代码语言:javascript
复制
      - job: publishDeploymentPipelineFiles
        condition: not(canceled())
        steps:
          - checkout: none
          - download: auth
            artifact: drop
          - download: ai
            artifact: drop
          - download: ui
            artifact: drop

我希望的是某种形式的模板

代码语言:javascript
复制
  steps:
    - checkout: none
    - template: pull-deployment-manifests.yml
      parameters:
        sources:
        - project: services
          source: auth
          stackName: auth
        - project: services
          source: artificial-intelligence
          stackName: ai
        - project: frontend
          source: ui CI
          stackName: ui

它只列出项目和CI管道,并从stackName创建适当的管道ID,并创建资源和步骤。

我现在的解决办法是创建一个项目,该项目接受包含这些项的CSV并生成azure-管道.CSV

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-26 02:24:37

据我所知,您无法动态创建资源。所以你创造了这个

代码语言:javascript
复制
  steps:
    - checkout: none
    - template: pull-deployment-manifests.yml
      parameters:
        sources:
        - project: services
          source: auth
          stackName: auth
        - project: services
          source: artificial-intelligence
          stackName: ai
        - project: frontend
          source: ui CI
          stackName: ui

并在模板中运行签出,除非在根级别上使用这些名称定义资源。

如文档所述,这里

资源是在一个地方定义的,可以在管道中的任何地方使用。

票数 1
EN

Stack Overflow用户

发布于 2021-05-26 02:24:41

确保可以使用资源设置模板,并在YAML管道中使用此模板。您可以引用"从具有资源的模板扩展“。

但是,请注意,如果在模板中定义了资源和步骤,则不能在YAML管道中的steps键下使用它。您应该使用extends键从模板扩展资源,如文档中的示例所示。

您可能需要在模板中定义所有必需的步骤,或者使用从其他step template到模板的步骤。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67691362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档