将条件 Github Action 标记为必需

3
在我的代码库中,有一个 Github 操作,仅在特定文件更改时运行。我已将此操作标记为必需,以便在自动合并失败时阻止自动合并。合并阻塞功能正常工作,但如果 PR 不包括对该特定文件的更改,则 Github 仍会阻止 PR,等待作业完成,而该作业甚至不会运行。理想情况下,如果不适用,Github 应忽略此操作。
我创建了一个公共 repository 来展示这种行为。有两个 PR 未解决:一个正常工作,另一个被阻止。
是否有任何建议的解决方法?
2个回答

2

一个解决方法是更新工作流,使其独立于路径运行,但在作业执行中使用类似于路径筛选器操作检查路径,然后如果标签未设置,则在PR上返回所需的消息并设置错误以阻止合并。如果文件未更新,则返回一切正常。

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

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."

0

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