GitHub Actions复合运行步骤错误:'找不到URI处的操作'

7

我正在尝试在GitHub Actions中使用复合运行步骤操作,如这里所述,以便在不同的工作流中重复使用它们。 然而,我遇到了以下错误:

An action could not be found at the URI 'https://api.github.com/repos/scripts/build_ubuntu/tarball/v1

我的主要工作流程(.github/workflows/BuildUbuntu.yml)如下所示:
[...]

jobs:
  ubuntu_build_appimage:
    name: Build MeshLab (Ubuntu - AppImage)
    runs-on: ubuntu-16.04

    steps:
    - uses: scripts/build_ubuntu@v1

[...]

而组合步骤 (.github/workflows/scripts/build_ubuntu/action.yml) 如下:

runs:
  using: "composite"
  steps: 
  - uses: actions/checkout@v2
    with:
      submodules: true

  [other steps...]

我哪里做错了?

以下是链接: GitHub 提交记录 工作流程

1个回答

9

您的工作流程在错误地引用操作。它正在查找标签为v1的用户/组织scripts的存储库build_ubuntu

您可以在本地引用它,因为它在同一存储库中。

[...]

jobs:
  ubuntu_build_appimage:
    name: Build MeshLab (Ubuntu - AppImage)
    runs-on: ubuntu-16.04

    steps:
    - uses: actions/checkout@v2
    - uses: ./.github/workflows/scripts/build_ubuntu

[...]

您的操作缺少namedescription元素,根据https://docs.github.com/cn/actions/creating-actions/metadata-syntax-for-github-actions文档这些元素是必需的。
此外,如webknjaz在他的评论中指出,您不能在一个复合 run steps 操作中使用uses步骤。目前,您只能使用以下子元素的run步骤:

复合 run steps 目前支持什么?

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

  • 名称
  • id
  • run
  • env
  • shell
  • working-directory

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

复合 Run Steps 不支持哪些内容

我们目前不支持在复合操作的各个步骤中设置条件、继续执行错误、超时分钟数、“uses”和机密。

(注意:对于使用复合 run steps 操作的步骤,我们支持在工作流程中设置这些属性。)

(来源:https://github.com/actions/runner/issues/646
name: "My composite action"
description: "Execute some run setps to do something"
runs:
  using: "composite"
  steps: 
  - run: |
      echo do something
      echo and do something else

  [other steps...]

2
https://github.com/actions/runner/issues/646 似乎暗示目前不支持 uses - webknjaz -- Слава Україні
1
这已经有所改变:https://github.blog/changelog/2021-08-25-github-actions-reduce-duplication-with-action-composition/ 然而,它仅支持嵌套的“uses”,而不支持嵌套的“jobs”。 - Stmated

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