GitLab CI与CMake:拆分预构建与构建任务遇缓存失效问题
问题解决:GitLab CI缓存预构建CMake产物失败
你的问题根源在于构建任务的缓存路径配置错误:预构建任务推送的缓存路径是build/Release,但构建任务拉取的路径写成了build/V2_Release,两者路径不匹配导致缓存无法传递。
修正后的.gitlab-ci.yml配置如下:
image: ubuntu:22.04 before_script: - apt update - apt install cmake ninja-build gcc-arm-none-eabi -y stages: - build pre-build: stage: build script: - cmake --preset=Release cache: paths: - build/Release policy: push build: stage: build script: - cmake --build build/Release cache: paths: - build/Release # 修正为与预构建任务一致的路径 policy: pull
额外注意事项:
- 确认你的CMake Preset
Release确实生成到build/Release目录,可以通过cmake --list-presets或查看CMakePresets.json验证路径配置 cache.policy: push仅在任务成功后推送缓存,policy: pull仅拉取缓存不推送,适配构建任务的使用场景- 两个任务处于同一个
build阶段,GitLab CI会按顺序执行,确保预构建完成后再启动构建任务
内容的提问来源于stack exchange,提问作者Furlings
相关产品推荐
相关产品推荐

