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

如何针对指定分支触发GitLab流水线作业且排除仅改动特定文件的提交?

配置方案

在.gitlab-ci.yml的部署作业节点下配置rules规则即可实现需求,GitLab 13.1及以上版本推荐使用带exclude_paths的写法:

deploy:
  stage: deploy
  script:
    # 替换为你实际的部署执行命令
    - ./deploy.sh
  rules:
    # 匹配指定触发分支,示例为main分支,可自行修改
    - if: $CI_COMMIT_BRANCH == "main"
      changes:
        paths:
          - "**/*"
        exclude_paths:
          - "Makefile"
          - "docker-compose.yml"
      when: always
    # 其余所有情况都不触发当前作业
    - when: never

规则逻辑说明

  • 只有提交属于你指定的目标分支时才会进入后续校验
  • exclude_paths会过滤仅改动指定文件的提交:如果本次提交只改了Makefile、docker-compose.yml中的一个或两个,不会触发部署作业;只要有其他文件改动就会正常触发
  • 如果需要匹配所有层级目录下的同名文件,可将路径修改为**/Makefile、**/docker-compose.yml
低版本GitLab兼容写法

如果你的GitLab版本低于13.1不支持exclude_paths,可以用only/except组合实现:

deploy:
  stage: deploy
  script:
    - ./deploy.sh
  only:
    refs:
      - main
    changes:
      - "**/*"
  except:
    changes:
      - "Makefile"
      - "docker-compose.yml"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:15:04