gitlab-ci - 由于不同的运行程序,Gitlab 管道缓存未共享

标签 gitlab-ci

我有一个简单的 Gitlab 管道设置,分为两个阶段:构建和测试。两个阶段都应该共享缓存文件,但它们似乎没有共享,导致测试阶段失败。尽我所能,问题是每个阶段都使用不同的运行程序,并且缓存的文件使用运行程序 ID 作为路径的一部分。

.gitlab-ci.ym

...
cache:
  key: "build"
  untracked: true
...

构建阶段输出以下内容

Creating cache build...
untracked: found 787 files                         
Uploading cache.zip to https://runners-cache-1.gitlab.com:443/runner/runner/30dcea4b/project/1704442/build 

测试阶段输出以下内容

Checking cache for build...
$ mvn test

我相信这意味着找不到缓存,因为没有下载信息;但还不清楚。

我还可以看到每个阶段都使用不同的运行程序,并且由于运行程序 ID 是缓存路径的一部分,我怀疑这就是问题所在。

我需要为每个阶段使用相同的运行程序或在运行程序之间共享缓存。我也不明白怎么办。

如有任何帮助,我们将不胜感激。

最佳答案

看起来 cache该功能的命名很恰当,它只是为了提高构建性能,并不保证拥有数据,就像真正的缓存一样。

正确的做法是使用artifactsdependencies .

关于gitlab-ci - 由于不同的运行程序,Gitlab 管道缓存未共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39705327/

相关文章:

gitlab-ci - 是否可以交互式地调试 Gitlab CI 构建?

docker - 带有 JHipster 和 Docker 注册表的 Gitlab CI/CD

gitlab - 触发一个管道并等待另一个管道完成

docker - Elasticsearch 服务未在 gitlab 上启动 - docker 容器已在使用中

android - Gitlab CI :- How to create the Shared Runner in Gitlab which does not depend on the any system?

docker - 如果带有 GitLab Runner shell 执行器的 GitLab 是不安全的,那么 GitLab SSH Runner 是否可以从 MITM 中安全地用作安全的替代品,或者使用 Docker?

python - 如何使用 Gitlab CI 提高基于 python 的无服务器框架项目的部署速度

kubernetes - gitlab auto-deploy-app 容器的事件探针失败

gitlab - Terraform 失败且没有任何错误消息

bash - 通过 bash 命令设置 gitlab-ci.yml 变量