如何解决GitHub操作错误:“必须在顶层运行:”部分
我正在尝试执行私有GitHub操作以在我的私有GitHub组织中工作。包含这些工作流“模板”的私有存储库具有以下简单的文件结构,因为我只是想让最低限度发挥作用:
.
├── .git
├── test
│ ├── action.yml
action.yml
文件的内容是:
name: Test
on: push
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Echo
run: |
echo Heyyyyy
我试图在另一个私有回购中使用具有以下内容的工作流文件的此操作:
name: Test
on:
push:
branches:
- master
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
repository: <private-actions-repo>
token: ${{ secrets.REPO_TOKEN }}
path: github-actions
- name: Test private action
uses: ./github-actions/test
此操作运行时,出现以下错误:
##[error]Top level 'runs:' section is required for /home/runner/work/<private-repo>/./github-actions/test/action.yaml
尝试对此进行调试,我更新了使用模板的工作流程,以cat
此文件的文件内容:
- name: Test private action
run: |
cat ./github-actions/test/action.yml
..然后我得到了我期望的内容:
> Run cat ./github-actions/test/action.yml
name: Test
on: push
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Echo
run: |
echo Heyyyyy
为什么在操作存储库中使用它时,它为什么不起作用,但是目标存储库中的内容完全相同?
解决方法
您必须区分工作流,操作和不同的操作类型。
工作流是顶级元素,不可组合。动作是可以在工作流中使用的构建块。您在action.yml
中定义的操作实际上是一个工作流程,但应为composite run steps action
,即一种特定类型的操作,必须遵循以下给出的规则:
https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#runs-for-composite-run-steps-actions
您可以在此处找到composite run steps action
的示例:
https://docs.github.com/en/actions/creating-actions/creating-a-composite-run-steps-action#creating-an-action-metadata-file
如果将以下内容用作action.yaml
,则应该可以使用:
name: Test
description: 'composite run action'
runs:
using: "composite"
steps:
steps:
- name: Echo
shell: bash
run: |
echo Heyyyyy
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。