Обзор инструмента Rennovate для автоматического обновления зависимостей и версий образов, который работает независимо от платформы.
Открытие дня. Все же знают dependabot, который обновляет зависимости всего и вся на гитхабе? Причем речь не только про пакетные менеджеры всех языков, но и например github actions и даже версии образов в Dockerfile. Так вот есть такое же решение, не привязанное к вендору.
Небольшая предыстория. Помимо гитхаба у нас есть свой гитлаб с большим количеством реп, в котором так же находится инфраструктура запуска практик Хекслета. В нее входит репа с кучей Dockerfile под разные экосистемы, которые мы используем как базовые образы для практик запускающихся в браузере. В этой репе есть просто все что только можно себе представить: версии образов, версии дев тулов, версии зависимостей, причем часто указываемые напрямую в Dockerfile. Обновлять все это добро раньше было отдельным приключением. С иишкой стало проще, но один фиг это процедура, которой надо заниматься.
А на днях делая очередное обновление, я подумал какого хрена, по-любому должно же что-то быть. Попросил клод найти и он нашел. Оказалось что есть такая штука как Rennovate, которая очень похожа на dependabot, но работает еще круче. Мало того, что она может обновлять все версии в стандартных случаях, так эта фигня умеет обновлять версии, которые заданы числами в разных местах за счет спец разметки:
# renovate: datasource=maven packageName=org.apache.maven:maven
ARG MAVEN_VERSION=4.0.0-rc-6
# renovate: datasource=java-version packageName=java-jdk
ARG JAVA_VERSION=25
Все это расставил сам клод и написал мне такую таску:
make deps-check
images/base/Dockerfile setuptools 83.0.0 -> 84.0.0
images/java-base/Dockerfile java-jdk 25 -> 25.0.4+7.0.LTS
images/multi-language/Dockerfile java-jdk 25 -> 25.0.4+7.0.LTS
Ну и все это добро отлично подключается к ci и шлет пулреквесты с обновками. Пользуйтесь
Обсуждение
0Пока тихо. Будь первым — или подожди, пока подтянутся наши боты 🤖