1
Fork 0

Implement custom version checks

Many dependencies are installed manually within the Dockerfiles,
where Renovate cannot determine the version numbers by default.
However, through custom matching, the corresponding data sources
can be invoked, and the version number replaced via regex.
This commit is contained in:
Lucas Schwiderski 2024-08-23 16:14:52 +02:00
parent 84e699c4a1
commit b4ea7d0ab5
Signed by: lucas
GPG key ID: AA12679AAA6DF4D8
9 changed files with 94 additions and 29 deletions

View file

@ -7,5 +7,29 @@
":rebaseStalePrs" ":rebaseStalePrs"
], ],
"prConcurrentLimit": 10, "prConcurrentLimit": 10,
"branchPrefix": "renovate/" "branchPrefix": "renovate/",
"customManagers": [
{
"customType": "regex",
"description": "Update _VERSION variables in Dockerfiles",
"fileMatch": [
"(^|/|\\.)Dockerfile$",
"(^|/)Dockerfile\\.[^/]*$"
],
"matchStrings": [
"# renovate: datasource=(?<datasource>[a-z-]+?)(?: depName=(?<depName>.+?))? packageName=(?<packageName>.+?)(?: versioning=(?<versioning>[a-z-]+?))?\\s(?:ENV|ARG) .+?_VERSION=(?<currentValue>.+?)\\s"
]
}
],
"packageRules": [
{
"matchDatasources": [
"github-release"
],
"matchPackageNames": [
"llvm/llvm-project"
],
"extractVersion": "^llvmorg-(?<version>\\d+)\\.\\d+\\.\\d+$"
}
]
} }

View file

@ -1,7 +1,9 @@
# renovate: datasource=github-tags depName=beancount packageName=beancount/beancount
ARG BEANCOUNT_VERSION=2.3.6 ARG BEANCOUNT_VERSION=2.3.6
# renovate: datasource=github-tags depName=fava packageName=beancount/fava
ARG FAVA_VERSION=1.27.3 ARG FAVA_VERSION=1.27.3
FROM node:lts-slim as node_build_env FROM node:20.17.0-slim as node_build_env
ARG FAVA_VERSION ARG FAVA_VERSION
RUN set -eux; \ RUN set -eux; \

View file

@ -1,3 +1,4 @@
# renovate: datasource=github-releases depName=frp packageName=fateder/frp
ARG FRP_VERSION=0.60.0 ARG FRP_VERSION=0.60.0
FROM scratch AS src FROM scratch AS src

View file

@ -2,8 +2,11 @@ ARG LUA_5_1_VERSION=5.1.5
ARG LUA_5_2_VERSION=5.2.4 ARG LUA_5_2_VERSION=5.2.4
ARG LUA_5_3_VERSION=5.3.6 ARG LUA_5_3_VERSION=5.3.6
ARG LUA_5_4_VERSION=5.4.4 ARG LUA_5_4_VERSION=5.4.4
# renovate: datasource=github-tags depName=luarocks packageName=luarocks/luarocks
ARG LUAROCKS_VERSION=3.10.0 ARG LUAROCKS_VERSION=3.10.0
# renovate: datasource=github-releases depName=dart-sass packageName=sass/dart-sass
ARG DART_SASS_VERSION=1.71.1 ARG DART_SASS_VERSION=1.71.1
# renovate: datasource=github-tags depName=node packageName=nodejs/node
ARG NODE_VERSION=20.11.1 ARG NODE_VERSION=20.11.1
FROM debian:bookworm-slim AS builder FROM debian:bookworm-slim AS builder
@ -84,7 +87,7 @@ RUN set -e; \
make -j $(nproc); \ make -j $(nproc); \
make install; make install;
FROM builder AS dart FROM builder AS sass
ARG DART_SASS_VERSION ARG DART_SASS_VERSION
ADD https://github.com/sass/dart-sass/releases/download/${DART_SASS_VERSION}/dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz /build/sass.tar.gz ADD https://github.com/sass/dart-sass/releases/download/${DART_SASS_VERSION}/dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz /build/sass.tar.gz
@ -140,7 +143,7 @@ COPY --from=lua52 /usr/local /usr/local
COPY --from=lua53 /usr/local /usr/local COPY --from=lua53 /usr/local /usr/local
COPY --from=lua54 /usr/local /usr/local COPY --from=lua54 /usr/local /usr/local
COPY --from=node /usr/local /usr/local COPY --from=node /usr/local /usr/local
COPY --from=dart /usr/local /usr/local COPY --from=sass /usr/local /usr/local
RUN --mount=type=cache,target=/var/cache/luarocks \ RUN --mount=type=cache,target=/var/cache/luarocks \
set -e; \ set -e; \

View file

@ -1,27 +1,29 @@
FROM nextcloud:28.0.6-apache FROM nextcloud:28.0.6-apache
# renovate: datasource=github-releases depName=yt-dlp packageName=yt-dlp/yt-dlp versioning=loose
ARG YTDLP_VERSION=2024.05.27 ARG YTDLP_VERSION=2024.05.27
# Debian ships node.js v18, make sure that the pageres version supports that # Debian ships node.js v18, make sure that the pageres version supports that
# renovate: datasource=npm packageName=pageres-cli
ARG PAGERES_VERSION=8.0.0 ARG PAGERES_VERSION=8.0.0
RUN set -ex; \ RUN set -ex; \
apt-get update; \ apt-get update; \
apt-get install -y --no-install-recommends --no-install-suggests \ apt-get install -y --no-install-recommends --no-install-suggests \
aria2 \ aria2 \
cifs-utils \ cifs-utils \
clamav \ clamav \
ffmpeg \ ffmpeg \
libnss3 \ libnss3 \
libbz2-dev \ libbz2-dev \
nodejs \ nodejs \
npm \ npm \
smbclient \ smbclient \
p7zip \ p7zip \
p7zip-full \ p7zip-full \
python3-pip \ python3-pip \
unzip \ unzip \
wget \ wget \
; \ ; \
docker-php-ext-install bz2; \ docker-php-ext-install bz2; \
npm install --global pageres-cli@${PAGERES_VERSION} puppeteer; \ npm install --global pageres-cli@${PAGERES_VERSION} puppeteer; \
npx puppeteer browsers install chrome; \ npx puppeteer browsers install chrome; \

View file

@ -1,5 +1,20 @@
FROM node:20.17.0-slim FROM node:20.17.0-slim
# renovate: datasource=npm packageName=npm
ARG NPM_VERSION=10.5.0
# renovate: datasource=npm packageName=bluebird
ARG BLUEBIRD_VERSION=3.7.2
# renovate: datasource=npm packageName=lodash
ARG LODASH_VERSION=4.17.21
# renovate: datasource=npm packageName=moment
ARG MOMENT_VERSION=2.30.1
# renovate: datasource=npm packageName=shelljs
ARG SHELLJS_VERSION=0.8.5
# renovate: datasource=npm packageName=js-yaml
ARG JS_YAML_VERSION=4.1.0
# renovate: datasource=npm packageName=got
ARG GOT_VERSION=14.4.2
# No need for root access for a script runner # No need for root access for a script runner
RUN useradd -m -d /home/runner -s /bin/bash runner; RUN useradd -m -d /home/runner -s /bin/bash runner;
WORKDIR /home/runner WORKDIR /home/runner
@ -11,13 +26,13 @@ ENV PATH=/home/runner/.npm-global/bin:$PATH
RUN set -e; \ RUN set -e; \
npm install --global --audit=false \ npm install --global --audit=false \
npm@10.5.0 \ npm@${NPM_VERSION} \
bluebird \ bluebird@${BLUEBIRD_VERSION} \
lodash \ lodash@${LODASH_VERSION} \
moment \ moment@${MOMENT_VERSION} \
shelljs \ shelljs@${SHELLJS_VERSION} \
js-yaml \ js-yaml@${JS_YAML_VERSION} \
got \ got@${GOT_VERSION} \
; \ ; \
rm -r \ rm -r \
/home/runner/.npm/_cacache \ /home/runner/.npm/_cacache \

View file

@ -1,6 +1,13 @@
FROM python:3.12.5-slim-bookworm FROM python:3.12.5-slim-bookworm
LABEL version=1.1.0 ARG PIP_VERSION=24.2
ARG NUMPY_VERSION=2.1.0
ARG HTTPIE_VERSION=3.2.3
ARG PYFROGEJO_VERSION=1.0.2
ARG DOCKER_VERSION=7.1.0
ARG XQ_VERSION=0.0.4
ARG SPOTIFY_VERSION=0.10.2
ARG REQUESTS_VERSION=2.32.2
RUN set -e; \ RUN set -e; \
apt-get update -q; \ apt-get update -q; \
@ -30,7 +37,8 @@ USER runner
ENV PATH=/home/runner/.local/bin:$PATH ENV PATH=/home/runner/.local/bin:$PATH
COPY requirements.txt ./
RUN set -e; \ RUN set -e; \
pip install --upgrade pip; \ pip install --user -r requirements.txt; \
pip install --user numpy httpie giteapy docker xq yp spotify requests; \
rm -r /home/runner/.cache; rm -r /home/runner/.cache;

View file

@ -0,0 +1,8 @@
pip
numpy
httpie
pyforgejo
requests
spotify
xq
docker

View file

@ -2,6 +2,7 @@
FROM debian:bullseye-slim AS xwin-download FROM debian:bullseye-slim AS xwin-download
ARG MANIFEST_VERSION=16 ARG MANIFEST_VERSION=16
# renovate: datasource=github-releases depName=xwin packageName=Jake-Shadle/xwin
ARG XWIN_VERSION=0.6.5 ARG XWIN_VERSION=0.6.5
ARG XWIN_PREFIX="xwin-$XWIN_VERSION-x86_64-unknown-linux-musl" ARG XWIN_PREFIX="xwin-$XWIN_VERSION-x86_64-unknown-linux-musl"
ADD https://github.com/Jake-Shadle/xwin/releases/download/$XWIN_VERSION/$XWIN_PREFIX.tar.gz /root/$XWIN_PREFIX.tar.gz ADD https://github.com/Jake-Shadle/xwin/releases/download/$XWIN_VERSION/$XWIN_PREFIX.tar.gz /root/$XWIN_PREFIX.tar.gz
@ -27,6 +28,7 @@ RUN set -eux; \
FROM rust:slim-bullseye AS rust-xwin FROM rust:slim-bullseye AS rust-xwin
# renovate: datasource=github-releases depName=llvm packageName=llvm/llvm-project
ARG LLVM_VERSION=18 ARG LLVM_VERSION=18
ENV KEYRINGS=/usr/local/share/keyrings ENV KEYRINGS=/usr/local/share/keyrings