GitHub 行动 | 触发除一个子文件夹之外的根文件夹的管道

for*_*u82 6 github-actions

我想在文件夹的目录或子目录中更改任何文件时触发管道,/ProjectA/除了/ProjectA/sub-dir-a.

我添加了以下事件来实现结果,但是,它抛出一个错误,指出无法在同一事件中添加 Path 和 Path-ignore。

    on:
  push:
    branches: [ master ]
    paths: "ProjectA/**"
    paths-ignore: " ProjectA/sub-dir-a /**"
Run Code Online (Sandbox Code Playgroud)

收到错误 在此输入图像描述

此外,如果我将事件更改为仅包含“路径”,即使子文件夹中的任何文件也发生更改,它也会触发管道。

我正在寻找排除子目录的选项。

Mar*_*tek 11

正如您所看到的,您不能将它们混合使用paths,paths-ignore但是如果您查看过滤器模式备忘单,然后查看模式以匹配文件路径部分,您会发现您还可以否定模式:

!在模式前面使用感叹号 ( ) 可将其否定。当文件与某个模式匹配并且还与文件中稍后定义的否定模式匹配时,将不会包含该文件。

考虑到这一点,您可以尝试:

on:
  push:
    branches:
      - master
    paths: 
      - "ProjectA/**"
      - "!ProjectA/sub-dir-a/**"
Run Code Online (Sandbox Code Playgroud)

编辑

文档中的示例完全涵盖了您的情况。