You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于子文件夹提交触发DevOps Agent Job的运行条件配置问题

Agent Job 路径触发条件配置方案

核心逻辑

你需要基于CI系统内置的路径变更检测能力,为两个Agent Job分别配置专属运行规则,不需要修改已有的全局路径过滤配置,仅在Job层级追加条件即可。

具体配置步骤

  • 确认所用CI平台的路径匹配语法,主流平台的配置方式如下:
    • GitLab CI:直接在Job的rules块中使用changes字段匹配路径
    • GitHub Actions:通过github.event上下文变量判断变更路径,或使用paths-filter官方Action生成标记
    • Azure DevOps:在Job的condition字段中调用Build.SourceVersion相关内置变量匹配路径
    • Jenkins:使用changeset全局方法判断路径变更
  • 给Agent X配置运行条件:仅当本次触发的变更包含A文件夹下的任意文件时,Job才启动
  • 给Agent Y配置运行条件:仅当本次触发的变更包含B文件夹下的任意文件时,Job才启动

如果本次提交同时修改了A、B两个文件夹的内容,两个Agent Job会同时触发运行,符合常规业务需求。

配置示例

GitLab CI 示例

agent_x:
  tags: [agent-x]
  rules:
    - changes:
        - "A/**/*" # 匹配A文件夹下所有层级的文件
      when: on_success
    - when: never

agent_y:
  tags: [agent-y]
  rules:
    - changes:
        - "B/**/*" # 匹配B文件夹下所有层级的文件
      when: on_success
    - when: never

GitHub Actions 示例

jobs:
  agent-x:
    runs-on: [self-hosted, agent-x]
    # 仅当A目录有变更时运行
    if: ${{ contains(join(github.event.head_commit.modified, ','), 'A/') }}
    steps:
      - run: echo "Running on Agent X for folder A changes"

  agent-y:
    runs-on: [self-hosted, agent-y]
    # 仅当B目录有变更时运行
    if: ${{ contains(join(github.event.head_commit.modified, ','), 'B/') }}
    steps:
      - run: echo "Running on Agent Y for folder B changes"

内容的提问来源于stack exchange,提问作者SukumarVinnakota

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:18:03