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