对拉取请求批准和路径触发 GitHub 操作

2024-01-11

我想构建一个在拉取请求 (PR) 批准时触发的 GitHub 操作,但仅当 PR 包含对特定路径的修改时才触发。

目前,我有以下实现:

on:
  pull_request_review:
    types: [submitted]
    paths: ['mypath/**']

jobs:
  build:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v2
      - name: job name
        if: github.event.review.state == 'approved'

[参考:https://github.community/t/github-actions-manual-trigger-approvals]

但是,那build作业在批准时触发,并且似乎忽略了路径。无论 PR 中修改了哪些文件,构建都会在任何批准后运行。

是否只有当 PR 修改特定路径并获得批准时才可以触发 GitHub Action?


I know fuzzi找到了使用另一种带有标签的解决方案的替代方案,但如果有人想解决保留原始前提的问题,这是我的贡献:

Context

The ON触发条件为OR而不是作为AND。因此,在问题示例中,工作流程将在以下情况下触发:pull_request_review is submitted OR当更新的文件之一path是知情者。

解决方法

不可能通过以下方式检查这两个条件(还?)on单独的工作流程级别字段。

因此,如果您想检查这两个条件,则必须单独进行。

解决方案可能是检查submitted公关在ON首先触发,然后检查作业步骤中的文件夹路径。

Example

这是上面建议的解决方案的示例,使用路径更改过滤器 https://github.com/dorny/paths-filter action:

on:
  pull_request_review:
    types: [submitted]

jobs:
  build:
    runs-on: self-hosted #or any other runner
    steps:
      - uses: actions/checkout@v2
      - uses: dorny/paths-filter@v2
        id: changes
        with:
          filters: |
             mypath:
              - 'mypath/**'
      # run only if some file in 'src' folder was changed
      - if: steps.changes.outputs.mypath == 'true' && github.event.review.state == 'approved'
        run: ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

对拉取请求批准和路径触发 GitHub 操作 的相关文章

随机推荐

  • 如何使用 WebGL 和 GLSL 在 J/s 文件中运行 Shadertoy 中的着色器?

    我是着色器编程新手 我想使用 WebGL 和 GLSL 创建一个着色器 为了了解它的实际工作原理 我想测试 Shadertoy 的着色器 但是如何从 Shadertoy 获取代码并实际在 J S 文件中运行它呢 您是否只需将 Shadert
  • 以编程方式从“p”和“q”生成“d”(RSA)

    我有两个号码 p and q 我知道我能得到phi p 1 q 1 然后ed 1 mod phi 但我不确定我明白这意味着什么 我写了一些Python p NUM q NUM e NUM phi p 1 q 1 d 1 phi float
  • 回显所有 json_encoded 行

    我正在尝试循环访问数据库并输出与连接表匹配的所有行 我有以下两个表 任务项目存储与项目相关的所有数据 加入任务项存储玩家 ID 和玩家拥有的物品之间的关联 JS 传入查询表所需的所有信息 getJSON phpscripts php pla
  • 尝试使用 Protocol Buffers - Google 的数据交换格式时,goog 未定义错误

    我正在尝试使用 Protocol Buffers Google 的数据交换格式https github com google protobuf tree master js https github com google protobuf
  • plpgsql For循环中的Select语句创建多个CSV文件

    我想重复以下查询 8760 次 将一年中每个小时的 2 替换为 1 到 8760 我们的想法是每小时创建一个单独的 CSV 文件以进行进一步处理 COPY SELECT FROM public completedsolarirad2012
  • ZF2 toRoute 与 https

    我们正在使用 Zend Framework 2 并使用toRoute在我们的控制器中重定向到不同的位置 例如 this gt redirect gt toRoute home 无论如何 是否可以使用此方法或替代方法将其重定向到 https
  • 如何嵌入文件以供以后解析执行使用

    我本质上是想浏览一个 html 文件的文件夹 我想将它们嵌入到二进制文件中 并能够根据请求解析它们以用于模板执行目的 如果我措辞不当 请原谅 任何想法 提示 技巧或更好的方法来实现这一点都非常感谢 Template Files type T
  • Base64 java 中的文件编码失败

    我有这个类来编码和解码文件 当我使用 txt 文件运行该类时 结果成功 但是 当我使用 jpg 或 doc 运行代码时 我无法打开该文件 或者它不等于原始文件 我不知道为什么会发生这种情况 我修改了这个类http myjeeva com c
  • 在 Node 中通过“_id”搜索 MongoDB 条目的正确方法

    我在用着MongoDb 作为 的一部分MongoJS in Node 这是 MongoJS 的文档 https github com gett mongojs 我正在尝试根据条目在 Node 内进行调用 id场地 使用香草时MongoDB从
  • 如何改变gvim中的左边距

    我在 XP 上有 gvim 7 3 我的问题是 当我编辑文件并关闭行号时 文本距离左窗口边距太近 我不想添加前导空白 我想增加边距 当我有行号时 我不喜欢 左窗口边框和行号之间有足够的空间 行号和文本之间有足够的空间 但是当行号关闭时就没有
  • 如何获取隐藏数据库的数据库模式?

    我的客户是一家牙科诊所 购买了一款诊所管理软件 该软件安装在他们的本地服务器上 包括患者数据库 时间表和各种医疗记录 现在他们希望我为他们编写一些他们的软件包中未提供的实用程序 为此我需要能够查询该数据库 我尝试致电软件制造商的技术支持 帕
  • Azure AD - 仅应用程序令牌中缺少角色声明

    当我尝试从 Nodejs 后端服务器获取仅应用程序令牌时 如下所述here https learn microsoft com en us graph auth v2 service 4 get an access token 有时role
  • 如何在 Vim 中创建文件夹(优先使用 NERDTree)?

    我知道如何创建重命名 删除和移动文件NERDTree 只需按m then either a d or m 但我不知道如何创建文件夹 有谁知道如何做到这一点NERDTree 或者只是以 vim 的原生 方式 You use m a并放置一个尾
  • ##+#. 是什么意思?是什么意思?

    谷歌几乎是不可能的 因此我的理解仅限于阅读 slime 源代码的上下文线索 也许它是 common lisp 中对象系统的一部分 类似 自己 的东西 片段 cond swank backend sbcl with new stepper p
  • 基于列子集修剪 NA - 更优雅的解决方案?

    stackoverflow 社区的新年难题 通过阅读过去的帖子和答案很有帮助 这是我的第一个问题 我找到了解决方法 但我想知道是否可以建议其他方法 解决方案 我正在尝试从大型文件中删除尾随的 NAdata frame 但这些 NA 只出现在
  • jQuery UI DatePicker - 禁用除每月最后一天之外的所有日期

    我正在尝试使用 jquery UI 日期选择器来显示仅可选择该月最后一天的日历 我已成功使用 beforeShowDay 事件禁用一周中的几天 但不确定如何使用它来禁用除该月最后一天之外的所有内容 beforeShowDay 会为日历上显示
  • Android - 仅垂直布局

    如何确保我的应用程序仅适用于垂直布局 我努力了android screenOrientation portrait 但这似乎并不能解决问题 您需要添加到所有活动中 而不仅仅是一项活动 我认为您了解设置是每个应用程序范围内的 但事实并非如此
  • 计算测试集每个类别的熵以测量 pytorch 上的不确定性

    我正在尝试使用 MC Dropout 方法和此链接中提出的解决方案来计算图像分类任务的数据集的每一类的熵 以测量 pytorch 上的不确定性 在 pytorch 上使用 MC Dropout 测量不确定性 https stackoverf
  • Firebase 在 React-native-android 上的 Facebook 登录

    我一直在尝试从 Firebase 文档中获取 Facebook 登录代码片段 但出现以下控制台错误 window open 不是一个函数 在 React Native 应用程序上实现 Firebase 的 Facebook 登录的正确方法是
  • 对拉取请求批准和路径触发 GitHub 操作

    我想构建一个在拉取请求 PR 批准时触发的 GitHub 操作 但仅当 PR 包含对特定路径的修改时才触发 目前 我有以下实现 on pull request review types submitted paths mypath jobs