Я пытаюсь использовать кеширование в gitlab runner, который создает проект Maven Java. В настоящее время Gitlab runner позволяет кэшировать только определенные пути, определенные в файле gitlab yaml в предложении cache:
. Когда maven создает проекты, он генерирует все внутри папки target/
, которые являются неотслеживаемыми файлами в git. Поэтому я могу просто использовать опцию untracked: true
для кэширования всего в папке target/
. Цель кэширования — пропустить компиляцию файлов, которые уже были скомпилированы maven в папке target/
.
Однако объем этого кеша составляет около 6 ГБ, что совершенно неразумно с учетом его размера и времени, необходимого для создания и восстановления такого гигантского кеша. Он кэширует все артефакты jar и war, созданные во время компиляции многомодульного проекта maven. Однако maven нужны только файлы .class для проверки изменений для повторной компиляции.
Итак, если бы у них был какой-то способ, с помощью которого я могу кэшировать только файлы *.class
и сделать их доступными в последующих сборках, тогда maven мог бы проверить файлы .class и пропустить повторную компиляцию неизмененных файлов, а размер кеша также был бы довольно мал. В настоящее время gitlab-runner позволяет указывать только абсолютные пути для кэширования. Он не поддерживает шаблоны регулярных выражений для таких путей, как \.class$
(что было бы очень полезно).
Есть ли способ кэшировать только определенные типы файлов, используя настройки yaml gitlab runner?