根据需要标记条件 Github 操作

Mark a conditional Github Action as required

我的存储库中有一个 Github 操作,仅当特定文件发生更改时才 运行。我已在存储库设置中将此操作标记为必需,以便每当它失败时自动合并就会被阻止。合并块工作正常,但如果 PR 不包含对该特定文件的更改,Github 仍然会阻止 PR 等待作业完成,甚至不会 运行。理想情况下,如果不适用,Github 应该忽略此操作。

我已经发布了一个 public repository 来展示这种行为。有两个打开的 PR:一个工作正常,另一个被阻止。

对此有任何建议的解决方法吗?

这很奇怪,因为 https://github.com/sferhan/hello-github-actions/pull/6 没有执行工作流程

并且我分叉了回购 https://github.com/bxb100/hello-github-actions,它工作正常...所以我猜操作有问题。

解决方法是将工作流更新为独立于路径的 运行,但使用 path filter action 之类的内容检查作业执行中的路径,然后 return 消息如果未设置标签并设置错误以阻止合并,或者 return 如果文件未更新则一切正常。

在这种情况下,您的工作流程如下所示:

name: All Checked Verifier

on:
  pull_request:
    types: [labeled, unlabeled, opened, edited, synchronize]

jobs:
  enforce-label:
    runs-on: ubuntu-latest
    steps:
    - uses: dorny/paths-filter@v2
      id: changes
      with:
        filters: |
          public_api_views:
            - '**/code.py'
    - if: steps.changes.outputs.public_api_views == 'true'
      uses: yogevbd/enforce-label-action@2.1.0
      with:
        REQUIRED_LABELS_ALL: "checked-everything"
        REQUIRED_LABELS_ALL_DESCRIPTION: "Make sure we have checked everything and once done, add label 'checked-everything' to this PR."