Кеш GitLab не может найти подходящие файлы

Мой 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

Файл mymark создается сценариями сборки:

$ ls -l
total 76
-rw-r--r--  1 root root    3 Mar 15 10:48 mymark

Но GitLab этого не видит:

Creating cache 122f151d6b0a9d37cfa2172941d642e5c48287fc...
WARNING: mymark: no matching files                 
Created cache
Job succeeded

Кажется, это происходит случайно: иногда файл найден, иногда нет:

Creating cache 63d295dad175370aa61d13c4d2f3149e050df5e0...
mymark: found 1 matching files               
Created cache
Job succeeded

1 ответ

Это потому что cache может использоваться только для файлов внутри вашего проекта, поэтому даже

cache:
  paths:
    - /my_root_path

позволит GitLab CI искать /home/user/yourproject/my_root_path.

Это может случиться, когда вы cd из исходного каталога в любом before_script или же script директивы.

Убедись, что ты cd вернуться к исходному каталогу, в котором вы были, поэтому cache код может видеть пути, которые он ищет.

Другие вопросы по тегам