我有一个简单的 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该功能的命名很恰当,它只是为了提高构建性能,并不保证拥有数据,就像真正的缓存一样。
正确的做法是使用artifacts与 dependencies .
关于gitlab-ci - 由于不同的运行程序,Gitlab 管道缓存未共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39705327/