由于不同的跑步者,Gitlab 管道缓存未共享
Gitlab pipeline cache not being shared due to different runners
我有一个简单的 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 with dependencies。
我有一个简单的 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 with dependencies。