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
相关产品推荐
相关产品推荐

