根据需要标记条件 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."
我的存储库中有一个 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."