仅当推送的文件位于特定文件夹中时,如何运行 github 操作

The*_*erM 11 continuous-integration github github-actions

我有一个看起来像这样的文件夹结构。

- folder1
  - file1
  - *other files*
- folder2
  - file1
  - *other files*
- .gitignore
- package.json
- *other files*
Run Code Online (Sandbox Code Playgroud)

我想在推送时运行我的 github 操作,仅当任何更改/推送的文件位于folder1目录/文件夹中时。

小智 27

路径过滤器仅在工作流程级别起作用。

on:
  push:
    paths:
    - 'sub-project/**'
Run Code Online (Sandbox Code Playgroud)

如果您想在工作层面应用此方法,请寻找changed-files


小智 21

您还可以使用方括号添加分支并删除一些行。

on:
  push:
    branches: ['main']
    paths: ['folder/**']
Run Code Online (Sandbox Code Playgroud)


Fra*_*oso 20

如果还想过滤拉取请求运行,您将需要这个

on:
  push:
    paths:
    - 'folder1/**'
  pull_request:
    paths: 
    - 'folder1/**'
Run Code Online (Sandbox Code Playgroud)


Von*_*onC 18

正常语法涉及路径过滤器

on:
  push:
    paths:
    - 'folder1/**'
Run Code Online (Sandbox Code Playgroud)

如果这还不够,您还有GitHub Action Path Filter


Rod*_*ato 9

上面的答案是正确的,但是如果工作流本身发生了变化,他们将不会再次执行工作流。如果这是您想要的,请确保在路径过滤器中包含您的工作流程目录:

on:
  push:
    paths:
      - 'my-nodejs-application-directory/**'
      - '.github/workflows/**'
Run Code Online (Sandbox Code Playgroud)