Github Actions:由于路径中的文件未更改,因此未运行所需的状态检查

Ili*_*rim 10 github github-actions

假设我有一个这样的拉取请求。

name: Workflow

on:
   pull_request:
     paths:
       - '**/*.h'
       - '**/*.c'
Run Code Online (Sandbox Code Playgroud)

master通过将 GitHub Actions 配置为要求在拉取请求可合并之前通过状态检查来保护分支。

现在我更新自述文件。我打开了针对 的拉取请求master。拉取请求是不可合并的,因为状态检查永远不会返回成功,也不会返回失败。

建议?

小智 11

文档建议创建另一个具有相同名称的操作,该操作在满足相反条件时运行。在你的情况下,你会想要

name: Workflow

on:
   pull_request:
     paths-ignore:
       - '**/*.h'
       - '**/*.c'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: 'echo "No build required" '
Run Code Online (Sandbox Code Playgroud)

注意paths-ignore.

https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks#handling-跳过但必需的检查

  • 看起来是正确的答案,但这似乎是来自 github 的一个非常复杂的 API (5认同)
  • 如果有两个文件发生更改(例如:foo.c 和 README.md)怎么办?然后,这两个操作都会触发,并且构建检查将从路径忽略工作流程中通过,而其他工作流程“构建”仍在运行。 (3认同)