Решением может быть одновременное использование cache
и artifact
.
Этот конфиг создаст новый каталог в зависимости от идентификатора задания ($CI_JOB_ID
) для каждого выполнения задания:
stages:
- test
remote:
stage: test
script :
- mkdir cache-$CI_JOB_ID
- echo hello> cache-$CI_JOB_ID/foo.txt
cache:
key: build-cache
paths:
- cache-$CI_JOB_ID/
artifacts:
paths:
- cache-$CI_JOB_ID/foo.txt
expire_in: 1 week
При следующем запуске предыдущий cache-$CI_JOB_ID
будет удален и заменен новым каталогом (так как $CI_JOB_ID
будет другим). Это сохранит только один экземпляр вашего кэшированного файла до следующего выполнения задания.
Примечание: необходимо добавить к имени каталога префикс cache-
, в противном случае .gitlab-ci.yml
недопустим.