【问题标题】:Github Actions - How do you trigger a push when a specific directory in a branch gets an update?Github Actions - 当分支中的特定目录获得更新时,如何触发推送?
【发布时间】:2022-04-18 02:33:47
【问题描述】:

我希望我的工作流仅在对特定目录进行更改时触发推送。这可能吗,我错过了什么?我尝试执行如下所示的操作,但没有触发触发器。

name: ABC

on:
  push:
    branches:  [master/my-directory]
  pull_request:
    branches: [ master ]

【问题讨论】:

    标签: github github-actions


    【解决方案1】:

    push 有一个名为paths 的属性:

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

    这只会在推送到 master 分支并在 my-directory 目录树中发生更改时触发。请参阅filter pattern cheat sheet 了解所有可能的过滤器模式。

    【讨论】:

    • 如何让它适用于所有未来的分支?
    • @Masmoudi 我认为您可以删除branches: 列表,它应该会在每个分支上触发。
    • @Florian 可以肯定的是条件的逻辑与,但不是 100% - 据我所知,文档并不明确。
    • @Florian 已确认行为:顶级触发器是 OR,因此如果您有 on:,然后有 schedule:push:,则其中任何一个都将触发工作流。这是有道理的。在触发器中,例如 push:branches:paths: 的附加条件是 AND。现在,我不是 100% 确定 branches:tags:,但为了这里的答案,声明“推到 master 分支并更改 my-directory 目录树”是正确的。
    • @Superbman 很确定你必须复制这些,因为它们仅分别引用 pushpull_request
    猜你喜欢
    • 2022-01-26
    • 2020-12-07
    • 1970-01-01
    • 2021-10-14
    • 2021-01-12
    • 2021-02-10
    • 1970-01-01
    • 2018-05-15
    • 2020-05-09
    相关资源
    最近更新 更多