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

GitLab CI/CD Pipeline依赖报错及变更触发问题求助

问题1:Playwright_Test 依赖 .react_cache 报错

原因

.react_cache 是隐藏作业(名称以.开头),这类作业默认不会被自动纳入流水线执行。dependencies 只能依赖流水线中实际运行的作业,因此会提示“undefined dependency”。

解决方法

把隐藏作业改为普通作业(去掉名称前的.),让它在cache阶段正常执行,这样Playwright_Test就能正确依赖它:

react_cache:  # 去掉名称前的点
  stage: cache
  image: registry.gitlab.com/path to my docker image
  script:
    - cd react-app
    - npm install -g yarn
    - yarn
    - yarn install --frozen-lockfile --no-progress
  cache:
    key:
      files:
        - react-app/yarn.lock

Playwright_Test:
  # 其他配置保持不变
  dependencies:
    - react_cache  # 同步修改依赖作业名
问题2:启用only:changes后Playwright_Test未触发

常见原因及解决

1. 路径匹配格式问题

GitLab CI 的changes路径是相对于仓库根目录的,./react-app/**/*的写法可能出现匹配异常,改为不带./的写法:

only:
  changes:
    - react-app/**/*  # 去掉开头的./

2. 全局分支规则冲突

如果项目有全局的only/except规则(比如默认仅允许主分支运行流水线),only:changes会和全局规则合并,导致任务无法触发。建议改用优先级更高的rules语法替代旧的only:

rules:
  - if: '$CI_PIPELINE_SOURCE == "push"'  # 仅在代码推送时触发
    changes:
      - react-app/**/*
    when: always

3. 提交变更未命中路径

检查你提交的代码变更,确认确实有文件在react-app目录下。GitLab CI 只会检测当前提交与上一次流水线运行时的提交之间的文件变更,如果变更文件不在匹配路径内,任务不会触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:05:02