GitLab 缓存无法可靠地找到匹配的文件

dan*_*ast 5 gitlab gitlab-ci gitlab-ci-runner

我的gitlab CI如下:

stages:
  - test

cache:
  key: ${CI_COMMIT_SHA}
  paths:
    - mymark

test:
  stage: test
  script:
    - ls -l
    - echo "hi" > mymark
    - ls -l
  tags:
    - myrunner
  only:
    - dev
Run Code Online (Sandbox Code Playgroud)

该文件mymark由构建脚本创建:

$ ls -l
total 76
-rw-r--r--  1 root root    3 Mar 15 10:48 mymark
Run Code Online (Sandbox Code Playgroud)

但 GitLab 没有看到它:

Creating cache 122f151d6b0a9d37cfa2172941d642e5c48287fc...
WARNING: mymark: no matching files                 
Created cache
Job succeeded
Run Code Online (Sandbox Code Playgroud)

这似乎是随机发生的:有时找到文件,有时找不到:

Creating cache 63d295dad175370aa61d13c4d2f3149e050df5e0...
mymark: found 1 matching files               
Created cache
Job succeeded
Run Code Online (Sandbox Code Playgroud)

Nei*_*eil 0

当您在任何或指令cd中退出原始目录时,可能会发生这种情况。before_scriptscript

确保cd返回到原来所在的目录,以便cache代码可以看到它正在寻找的路径。