Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Github 如何定义基于两个推送规则运行的工作流_Github_Github Actions_Lerna - Fatal编程技术网

Github 如何定义基于两个推送规则运行的工作流

Github 如何定义基于两个推送规则运行的工作流,github,github-actions,lerna,Github,Github Actions,Lerna,是否有办法在同一工作流文件或工作区中定义两个推送规则 如何将以下规则合并并写入单个工作流文件: 在非主分支上推送任何文件时运行 仅在主分支中推送特定(package.json)文件时运行 语法似乎不支持您的特定请求 根据的工作流语法,两个触发器配置似乎不相关 GitHub允许免费用户打开支持请求。您可以随时请求功能 目前我所知道的最接近的解决方法是类似于下面的工作流,在作业中使用条件 on: push: paths: - 'path-to-package/package.

是否有办法在同一工作流文件或工作区中定义两个推送规则

如何将以下规则合并并写入单个工作流文件:

  • 在非主分支上推送任何文件时运行
  • 仅在主分支中推送特定(package.json)文件时运行

  • 语法似乎不支持您的特定请求

    根据的工作流语法,两个触发器配置似乎不相关

    GitHub允许免费用户打开支持请求。您可以随时请求功能

    目前我所知道的最接近的解决方法是类似于下面的工作流,在作业中使用条件

    on:
      push:
        paths:
          - 'path-to-package/package.json'
    
    jobs:
      build_pom:
        runs-on: ubuntu-latest
        steps:
          - run: echo 'this is master'
            if: github.ref == 'refs/heads/master'
    

    嘿,谢谢你的工作和建议。但我唯一关心的是,我们大约有30多个包,因此此解决方案仍将运行所有工作流并污染所有工作流运行。您可以创建一个工作流来检查包和分支,以及另一个工作流(由第一个工作流中的
    调度
    事件触发)在满足条件时执行您想要执行的操作。第一个将始终触发,但第二个将仅在您将其配置为时触发。这不是最好的解决方案,但在为其提供特定功能之前,它仍然是一个可能的解决方案:)
    
    On:
      push:
         branches:
         - 'master'
         paths:
         - 'path-to-package/package.json'
           
    
    on:
      push:
        paths:
          - 'path-to-package/package.json'
    
    jobs:
      build_pom:
        runs-on: ubuntu-latest
        steps:
          - run: echo 'this is master'
            if: github.ref == 'refs/heads/master'