Github Action 在多个 on:push: 路径上触发

2023-11-21

在单个存储库中,我想为不同的路径创建多个触发器[paths: 'frontend/**' and paths: 'backend/**'] 对于(相同的)构建作业使用不同的参数。以下是两个工作流程。

name: Trigger Jenkins Build [ Build-Portal ]
on:
  push:
    branches: [ develop ]
    paths: 'frontend/**'
    types: [closed]
jobs:
  build:
    name: Triggering Jenkins Build [ Build-Portal ]
    runs-on: ubuntu-latest
    if: github.event.pull_request.merged == true
    steps:
    - name: Trigger Build-Portal
      uses: actions/trigger-jenkins@develop
      with:
        ...
        job_name: "Build-Portal"
        job_params: '{"FRESH_BUILD":"True", "UI":"True", "BUILD_BRANCH":"develop", "DEPLOY_DEV":"True"}'
        ...

and

name: Trigger Jenkins Build [ Build-Portal ]
on:
  push:
    branches: [ develop ]
    paths: 'backend/**'
    types: [closed]
jobs:
  build:
    name: Triggering Jenkins Build [ Build-Portal ]
    runs-on: ubuntu-latest
    if: github.event.pull_request.merged == true
    steps:
    - name: Trigger Build-Portal
      uses: actions/trigger-jenkins@develop
      with:
        ...
        job_name: "Build-Portal"
        job_params: '{"FRESH_BUILD":"True", "API":"True", "BUILD_BRANCH":"develop", "DEPLOY_DEV":"True"}'
        ...

我可以将这两个合并在一个工作流程文件中吗(.github/workflows/)或者每个都需要有单独的文件?

Note : job_params两个触发器的情况不同。


根据github 操作文档,它应该使用多个路径在同一工作流程中工作。

如果您还使用路径过滤动作你可以通过这样的方法得到你想要的结果:

Example:

name: Trigger Jenkins Build [ Build-Portal ]
on:
  push:
    branches: [ develop ]
    paths: 
       - 'frontend/**'
       - 'backend/**'
    types: [closed]
jobs:
  build:
    name: Triggering Jenkins Build [ Build-Portal ]
    runs-on: ubuntu-latest
    if: github.event.pull_request.merged == true
    steps:
      - uses: dorny/paths-filter@v2
        id: changes
        with:
           filters: |
              backend:
                - 'backend/**'
              frontend:
                - 'frontend/**'
    - name: Trigger Build-Portal FRONTEND
      # run only if some file in 'frontend' folder was changed
      if: steps.changes.outputs.frontend == 'true'
      uses: actions/trigger-jenkins@develop
      with:
        ...
        job_name: "Build-Portal"
        job_params: '{"FRESH_BUILD":"True", "UI":"True", "BUILD_BRANCH":"develop", "DEPLOY_DEV":"True"}'
        ...
     - name: Trigger Build-Portal BACKEND
      # run only if some file not 'backend' folder was changed
      if: steps.changes.outputs.backend == 'true'
      uses: actions/trigger-jenkins@develop
      with:
        ...
        job_name: "Build-Portal"
        job_params: '{"FRESH_BUILD":"True", "API":"True", "BUILD_BRANCH":"develop", "DEPLOY_DEV":"True"}'
        ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Github Action 在多个 on:push: 路径上触发 的相关文章

随机推荐

  • 如何pickle __main__ (python)中定义的函数/类

    我希望能够从 main 中腌制一个函数或类 但有一个明显的问题 在其他帖子中提到 腌制的函数 类位于 main 命名空间中 并且在另一个脚本 模块中取消腌制将失败 我有以下可行的解决方案 是否有理由不这样做 myscript py 中的内容
  • OpenCV Python cv2.perspectiveTransform

    我目前正在尝试使用 OpenCV 和 Python 进行视频稳定 我使用以下函数来计算旋转 def accumulate rotation src theta x theta y theta z timestamps prev curren
  • Android:在一个屏幕上查看两个活动

    我正在寻找同时显示两个活动的最简单方法 以便一个活动始终保持可见 而另一个活动则随着用户交互而变化 换句话说 我目前有一个包含多个活动的程序的代码 用户可以在这些活动之间导航 我想添加一个新的活动 该活动将始终与我已有的活动一起可见 当用户
  • 使用 POCO 的 C++ Http 请求

    我想知道如何使用 C 中的 POCO 向 URL 发出请求 例如下载图片并保存 到目前为止我得到了这个小代码 include
  • 在 C# 中检查两个 XML 文件是否相同?

    在 C 中如何检查两个 XML 文件是否相同 我想忽略 XML 文件中的注释 安装免费的来自 NuGet 的 XMLDiffMerge 包 这个包本质上是一个重新打包的版本XML 差异和补丁 GUI 工具来自微软 该函数返回true如果两个
  • 有没有办法按索引合并多个列表索引?

    例如 我有三个列表 长度相同 A 1 2 3 B a b c C x y z 我想将它合并成类似的东西 1 a x 2 b y 3 c z 这是我到目前为止所拥有的 define merger A B C answer for y in r
  • 几何命中测试中的错误

    我有一个绘画视觉表示路径的元素 其几何形状由此描述syntax m106 59 3c0 1 98 0 0 4 95 0 989 3 96 0 989 13 8 3 96 20 8 4 95 6 92 0 14 8 3 96 17 8 3 9
  • 抑制输出

    我想抑制一组 Matlab 函数中变量的输出 问题是作者忘记了 在代码中的许多位置 出于调试目的 此输出很有用 但现在我想抑制它 而不在整个代码中搜索丢失的 有没有可能关闭这种输出 您可以使用 evalc 抑制输出 但这需要您将表达式作为字
  • “为了钱,总是小数”?

    嗯 规则 对于金钱来说 总是小数 不适用于 Microsoft 开发团队内部 因为如果是 Namespace Microsoft VisualBasic Assembly Microsoft VisualBasic in Microsoft
  • 将 Browserify 与 jQuery 插件结合使用

    一些简短的背景 我正在使用 browserify 和 browserify shim 以及 gulp 来构建 来创建一个网络应用程序 在这个问题之前 我是require从 npm ing jquery 所以我没有任何问题 当我开始做一些优化
  • HTML5 结构 -

    再会 我刚刚开始学习 HTML5 没有任何问题 一切都很顺利 我只有一个关于语义使用的小问题
  • swagger 结合一些重复的注释

    I use useDefaultResponseMessages false 并在每个方法中 ApiResponses value ApiResponse code 200 message Success response Order cl
  • 在字段名称周围使用反引号

    在阅读了一些关于一些 SQL 问题的答案和评论之后 还听说我的一个朋友在一个有禁止它们的政策的地方工作 我想知道在 MySQL 中的字段名称周围使用反引号是否有什么问题 That is SELECT id name anotherfield
  • 使用 awk 打印除匹配范围模式之外的所有内容

    在 Awk 中 范围模式不是表达式 因此不能使用 不是它 那么如何实现它 使用 awk 打印除匹配范围模式之外的所有内容 e g cat 1 t abd hfdh fafa deafa 123 end 我想要的结果 cat 1 t abd
  • 实时生产中 Django 与 argon2 哈希器的问题

    所以我刚刚设置了我的 Digital Ocean Droplet 服务器 并一直在努力让这个网站正常工作 但是我遇到了一个又一个错误 我终于找到了加载登录页面的网站 这是应该发生的事情 但是当我登录时 我收到一个错误 Argon2 Pass
  • 导出奇怪的重复模板和协方差

    假设我有一个基类 它克隆派生类 class Base public virtual Base clone return new Base 我有一组派生类 它们是使用奇怪的重复模板模式实现的 template
  • 数组中每个元素右侧存在的最大元素

    我得到了一个 n 个元素 数组 我必须找到每个元素右侧大于其自身 当前元素 的最小元素 For example Array 8 20 9 6 15 31 Output Array 9 31 15 15 31 1 是否可以解决这个问题O n
  • C# 并发 - 长时间运行任务的首选方法

    当需要在整个应用程序生命周期中运行 I O 侦听器时 在 4 5 框架上运行的 C 5 0 首选哪种并发模型 我已经确定生产者 消费者模式最适合处理我收到的内容 但是什么基础设施应该支持它 会一个简单的Thread thread new T
  • 如何在 Google 地图中显示我当前的位置?

    我想在谷歌地图中显示我当前的位置 它应该是动态的 即经度和纬度应该动态设置 就像现在我在新德里一样 如果我启动我的 Android 应用程序 我当前的位置应该显示在新德里 如果我前往其他城市 它应该会改变 获取当前位置在 Android 上
  • Github Action 在多个 on:push: 路径上触发

    在单个存储库中 我想为不同的路径创建多个触发器 paths frontend and paths backend 对于 相同的 构建作业使用不同的参数 以下是两个工作流程 name Trigger Jenkins Build Build P