首页 > 解决方案 > 仅当以下情况为真时,如何触发 Github 操作?

问题描述

我想触发一个 Github Action 工作流,当 EITHER

  1. 除了 master 之外的任何分支都有推送

或者

  1. 仅在 master 上有拉取请求

背景:
我们有一个开发人员团队,他们致力于上游回购的个人分叉回购。在他们的分叉存储库中,他们在各自的分支(不是主分支)上工作,并通过提出拉取请求定期将它们合并到上游主分支。还鼓励开发人员定期获取上游 master 并在其之上重新构建他们的代码。因此,我们希望在以下情况下触发单元测试:

  1. 开发人员正在将他们的代码推送到他们单独的分支上(不是 master,排除 master 的原因是我们不希望在开发人员获取上游 master 并将其推送到本地 master 时触发单元测试)
  2. 每当开发人员在上游仓库的主分支上提出 PR

这是我为实现上述场景而编写的操作 yaml 文件:

name: Test
on: 
  push:
    branches-ignore:
      - master
    paths:
      - <folder_with_code_to_test>/**
  pull_request:
    branches:
      - master
    paths:
      - <folder_with_code_to_test>/**
jobs:
  test:
    # test set up follows from here

预期行为:
根据上述场景触发单元测试工作流

实际行为
当开发人员在其本地分支上推送代码时会触发单元测试(在获取上游 master 和推送到本地 master 期间也不会触发)
但是,当从分叉的功能分支提出拉取请求时不会触发单元测试到上游主控。

有没有办法实现预期的功能?

标签: githubgithub-actions

解决方案


推荐阅读