当分支中的特定目录更新时,如何触发推送?

51

我希望我的工作流仅在特定目录发生更改时才触发推送。这可能吗,我漏掉了什么? 我尝试过类似下面所示的操作,但它没有触发触发器。

name: ABC

on:
  push:
    branches:  [master/my-directory]
  pull_request:
    branches: [ master ]
1个回答

105

push有一个名为paths的属性:

name: ABC
on:
  push:
    branches:
      - master
    paths:
      - my-directory/**

只有在 my-directory 目录树中的更改提交到 master 分支时,才会触发此操作。请查看筛选器匹配模式清单,了解所有可能的筛选器匹配模式。


如何使其适用于所有未来的分支? - Masmoudi
1
@Masmoudi 我认为你可以直接删除 branches: 列表,这样它就会在每个分支上触发。 - Benjamin W.
1
@Florian 我很确定这里的条件是逻辑与,但我不能百分之百确定 - 就我所知,文档并没有明确说明。 - Benjamin W.
5
确认行为:顶级触发器是OR,因此如果您有 “on:” 然后同时有 schedule:push:,任何一个都将触发工作流。这是有意义的。在触发器内部,例如 push:branches:paths: 的附加条件是AND。现在,我不确定 branches:tags:,但是对于本答案的目的而言,“推送到 master 分支并更改 my-directory 目录树中的内容” 这个语句是正确的。 - Benjamin W.
1
@Superbman 我很确定你需要分别复制它们,因为它们只涉及到 pushpull_request - Benjamin W.
显示剩余4条评论

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