GitHub操作中的嵌套模板(从另一个YAML文件调用YAML文件 [英] Nested templates (calling a yaml file from another yaml file) in GitHub Actions

查看:11
本文介绍了GitHub操作中的嵌套模板(从另一个YAML文件调用YAML文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

GitHub操作是否支持嵌套模板?例如,下面是Azure管道YAML的一个示例,它调用另一个YAML文件:

- job: BuildFunctions
    
  steps:
  - ${{ each func in parameters.functionApps }}:
    - template: yaml/build-functionapps.yml
      parameters:

是否可以在GitHub操作中从另一个YAML文件调用YAML文件?

推荐答案

您可以使用复合运行步骤操作。这些操作仅在YAML(documentation)中定义。

您现在可以在以前可用的run步骤之外指定容器、其他复合操作(最大深度为9)和节点操作

节点操作可能引用叶操作,即不调用任何其他操作的操作。

来源:https://github.com/actions/runner/issues/646#issuecomment-901336347

工作流

[...]

jobs:
  job:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: ./.github/workflows/composite-action

[...]

复合运行步骤操作
.github/workflows/composite-action/action.yml(与工作流相同的存储库)

name: "My composite action"
description: "Checks out the repository and does something"
runs:
  using: "composite"
  steps:
  - uses: actions/checkout@v2
  - uses: actions/setup-node@v2
    with:
      node-version: 12
  - run: npm test
    shell: bash
  - run: |
      echo "Executing action"
    shell: bash

旧限制:

复合运行步骤当前支持什么?

对于复合操作中的每个运行步骤,我们支持:

  • 名称
  • id
  • 运行
  • 环境
  • 外壳
  • 工作目录

此外,我们还支持在整个操作中映射输入和输出。

有关详细信息,请参阅docs

复合运行步骤不支持什么

我们目前不支持在复合操作中设置条件、出错时继续、超时分钟和使用";[备注:即使用其他操作]以及各个步骤的密码。

(注意:我们支持在工作流中为使用复合运行步骤操作的步骤设置这些属性)

来源:https://github.com/actions/runner/issues/646

这篇关于GitHub操作中的嵌套模板(从另一个YAML文件调用YAML文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆