Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend Renovate Configuration #39

Merged
merged 3 commits into from
Aug 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,52 @@
"matchStrings": [
"docker://(?<depName>.*?):(?<currentValue>[\\w+\\.\\-]*)"
]
},
{
"description": "Custom manager for dependencies in Dockerfiles",
"customType": "regex",
"fileMatch": [
"(^|/|\\.)Dockerfile$",
"(^|/)Dockerfile\\.[^/]*$"
],
"matchStrings": [
"\\s*renovate:\\s*datasource=(?<datasource>.*?) depName=(?<depName>.*?)( versioning=(?<versioning>.*?))?\\sENV .*?_VERSION=\\\"?(?<currentValue>.*)\\\"?\\s"
],
"versioningTemplate": "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}"
}
],
"labels": [
"renovate"
],
"packageRules": [
{
"description": "Group all debian_12 dependencies in Dockerfiles",
"matchFileNames": [
"(^|/|\\.)Dockerfile$",
"(^|/)Dockerfile\\.[^/]*$"
],
"matchDatasources":[
"repology"
],
"matchDepNames":[
"debian_12/.*"
]
},
{
"description": "Group all pypi dependencies in Dockerfiles",
"matchFileNames": [
"(^|/|\\.)Dockerfile$",
"(^|/)Dockerfile\\.[^/]*$"
],
"matchDatasources": [
"pypi"
]
},
{
"description": "Group all deps in workflow files",
"matchManagers": [
"github-actions"
]
}
]
}
116 changes: 87 additions & 29 deletions docker/images/build-env-base/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,72 +2,130 @@
ARG BASE_IMAGE_TAG=latest
FROM ghcr.io/everest/everest-ci/run-env-base:${BASE_IMAGE_TAG}

# renovate: datasource=repology depName=debian_12/git versioning=loose
ENV GIT_VERSION=1:2.39.2-1.1
# renovate: datasource=repology depName=debian_12/curl versioning=loose
ENV CURL_VERSION=7.88.1-10+deb12u5
# renovate: datasource=repology depName=debian_12/rsync versioning=loose
ENV RSYNC_VERSION=3.2.7-1
# renovate: datasource=repology depName=debian_12/ninja-build versioning=loose
ENV NINJA_BUILD_VERSION=1.11.1-1
# renovate: datasource=repology depName=debian_12/make versioning=loose
ENV MAKE_VERSION=4.3-4.1
# renovate: datasource=repology depName=debian_12/cmake versioning=loose
ENV CMAKE_VERSION=3.25.1-1
# renovate: datasource=repology depName=debian_12/binutils versioning=loose
ENV BINUTILS_VERSION=2.40-2
# renovate: datasource=repology depName=debian_12/gcc versioning=loose
ENV GCC_VERSION=4:12.2.0-3
# renovate: datasource=repology depName=debian_12/g++ versioning=loose
ENV GPP_VERSION=4:12.2.0-3
# renovate: datasource=repology depName=debian_12/ccache versioning=loose
ENV CCACHE_VERSION=4.8+really4.7.5-1
# renovate: datasource=repology depName=debian_12/lcov versioning=loose
ENV LCOV_VERSION=1.16-1
# renovate: datasource=repology depName=debian_12/clang-format versioning=loose
ENV CLANG_FORMAT_VERSION=1:15.0.6-4+b1
# renovate: datasource=repology depName=debian_12/clang-tidy versioning=loose
ENV CLANG_TIDY_VERSION=1:15.0.6-4+b1

RUN apt update \
&& apt install --no-install-recommends -y \
# basic command line tools
git=1:2.39.2-1.1 \
curl=7.88.1-10+deb12u5 \
rsync=3.2.7-1 \
git=${GIT_VERSION} \
curl=${CURL_VERSION} \
rsync=${RSYNC_VERSION} \
# build tools
ninja-build=1.11.1-1 \
make=4.3-4.1 \
cmake=3.25.1-1 \
ninja-build=${NINJA_BUILD_VERSION} \
make=${MAKE_VERSION} \
cmake=${CMAKE_VERSION} \
# compilers
binutils=2.40-2 \
gcc=4:12.2.0-3 \
g++=4:12.2.0-3 \
binutils=${BINUTILS_VERSION} \
gcc=${GCC_VERSION} \
g++=${GPP_VERSION} \
# compiler tools
ccache=4.8+really4.7.5-1 \
lcov=1.16-1 \
clang-format-15=1:15.0.6-4+b1 \
clang-tidy-15=1:15.0.6-4+b1
ccache=${CCACHE_VERSION} \
lcov=${LCOV_VERSION} \
clang-format-15=${CLANG_FORMAT_VERSION} \
clang-tidy-15=${CLANG_TIDY_VERSION}

# Create symlinks for clang-format and clang-tidy
RUN ln -s /usr/bin/clang-format-15 /usr/bin/clang-format \
&& ln -s /usr/bin/clang-tidy-15 /usr/bin/clang-tidy

COPY run-clang-format.py /usr/bin/run-clang-format

# renovate: datasource=repology depName=debian_12/libboost-all-dev versioning=loose
ENV LIBBOOST_ALL_DEV_VERSION=1.74.0.3
# renovate: datasource=repology depName=debian_12/libsqlite3-dev versioning=loose
ENV LIBSQLITE3_DEV_VERSION=3.40.1-2
# renovate: datasource=repology depName=debian_12/libssl-dev versioning=loose
ENV LIBSSL_DEV_VERSION=3.0.13-1~deb12u1
# renovate: datasource=repology depName=debian_12/libnode-dev versioning=loose
ENV LIBNODE_DEV_VERSION=18.19.0+dfsg-6~deb12u2
# renovate: datasource=repology depName=debian_12/pkg-config versioning=loose
ENV PKG_CONFIG_VERSION=1.8.1-1
# renovate: datasource=repology depName=debian_12/libpcap-dev versioning=loose
ENV LIBPCAP_DEV_VERSION=1.10.3-1
# renovate: datasource=repology depName=debian_12/libcap-dev versioning=loose
ENV LIBCAP_DEV_VERSION=1:2.66-4
# renovate: datasource=repology depName=debian_12/python3-venv versioning=loose
ENV PYTHON3_VENV_VERSION=3.11.2-1+b1
# renovate: datasource=repology depName=debian_12/python3-build versioning=loose
ENV PYTHON3_BUILD_VERSION=0.9.0-1
# renovate: datasource=repology depName=debian_12/python3-sphinx versioning=loose
ENV PYTHON3_SPHINX_VERSION=5.3.0-4

# additional packages
RUN apt update \
&& apt install --no-install-recommends -y \
# required by some everest libraries
libboost-all-dev=1.74.0.3 \
libboost-all-dev=${LIBBOOST_ALL_DEV_VERSION} \
# required by libocpp
libsqlite3-dev=3.40.1-2 \
libssl-dev=3.0.13-1~deb12u1 \
libsqlite3-dev=${LIBSQLITE3_DEV_VERSION} \
libssl-dev=${LIBSSL_DEV_VERSION} \
# required by everest-framework
libnode-dev=18.19.0+dfsg-6~deb12u2 \
libnode-dev=${LIBNODE_DEV_VERSION} \
# required by packet sniffer module
pkg-config=1.8.1-1 \
libpcap-dev=1.10.3-1 \
libcap-dev=1:2.66-4 \
pkg-config=${PKG_CONFIG_VERSION} \
libpcap-dev=${LIBPCAP_DEV_VERSION} \
libcap-dev=${LIBCAP_DEV_VERSION} \
# Install Python packages
# Install Python packages - general
python3-venv=3.11.2-1+b1 \
python3-venv=${PYTHON3_VENV_VERSION} \
# Install Python packages - required by everest-core to run integration tests
python3-build=0.9.0-1 \
python3-build=${PYTHON3_BUILD_VERSION} \
# Install Python packages- required to build documentation
python3-sphinx=5.3.0-4
python3-sphinx=${PYTHON3_SPHINX_VERSION}

RUN apt clean \
&& rm -rf /var/lib/apt/lists/*

# renovate: datasource=pypi depName=gcovr
ENV GCOVR_VERSION=7.2
# renovate: datasource=pypi depName=sphinxcontrib-contentui
ENV SPHINXCONTRIB_CONTENTUI_VERSION=0.2.5
# renovate: datasource=pypi depName=sphinxcontrib-svg2pdfconverter
ENV SPHINXCONTRIB_SVG2PDFCONVERTER_VERSION=1.2.2

# Install additional Python packages
RUN python3 -m pip install --break-system-packages \
gcovr==7.2 \
gcovr==${GCOVR_VERSION} \
#Required by documentation - Sphinx extensions
sphinxcontrib-contentui==0.2.5 \
sphinxcontrib-svg2pdfconverter==1.2.2
sphinxcontrib-contentui==${SPHINXCONTRIB_CONTENTUI_VERSION} \
sphinxcontrib-svg2pdfconverter==${SPHINXCONTRIB_SVG2PDFCONVERTER_VERSION}

# renovate: datasource=github-releases depName=EVerest/everest-dev-environment versioning=loose
ENV EDM_VERSION=v0.6.2

# Install EVerest dependency manager
ARG EDM_VERSION=v0.6.2
RUN python3 -m pip install --break-system-packages \
git+https://github.com/EVerest/everest-dev-environment@${EDM_VERSION}#subdirectory=dependency_manager

# Install everest-cmake
ARG EVEREST_CMAKE_PATH=/usr/lib/cmake/everest-cmake
ARG EVEREST_CMAKE_VERSION=v0.4.4
ENV EVEREST_CMAKE_PATH=/usr/lib/cmake/everest-cmake
# renovate: datasource=github-releases depName=EVerest/everest-cmake versioning=loose
ENV EVEREST_CMAKE_VERSION=v0.4.4
RUN git clone https://github.com/EVerest/everest-cmake.git ${EVEREST_CMAKE_PATH} \
&& cd ${EVEREST_CMAKE_PATH} \
&& git checkout ${EVEREST_CMAKE_VERSION} \
Expand Down
78 changes: 59 additions & 19 deletions docker/images/dev-env-base/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,30 +15,69 @@ RUN apt update \
&& echo ${USERNAME} ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/${USERNAME} \
&& chmod 0440 /etc/sudoers.d/${USERNAME}

# renovate: datasource=repology depName=debian12/wget versioning=loose
ENV WGET_VERSION=1.21.3-1+b2
# renovate: datasource=repology depName=debian12/doxygen versioning=loose
ENV DOXYGEN_VERSION=1.9.4-4
# renovate: datasource=repology depName=debian12/graphviz versioning=loose
ENV GRAPHVIZ_VERSION=2.42.2-7+b3
# renovate: datasource=repology depName=debian12/build-essential versioning=loose
ENV BUILD_ESSENTIAL_VERSION=12.9
# renovate: datasource=repology depName=debian12/cppcheck versioning=loose
ENV CPPCHECK_VERSION=2.10-2
# renovate: datasource=repology depName=debian12/bash-completion versioning=loose
ENV BASH_COMPLETION_VERSION=1:2.11-6
# renovate: datasource=repology depName=debian12/vim versioning=loose
ENV VIM_VERSION=2:9.0.1378-2
# renovate: datasource=repology depName=debian12/gdb versioning=loose
ENV GDB_VERSION=13.1-3
# renovate: datasource=repology depName=debian12/nmap versioning=loose
ENV NMAP_VERSION=7.93+dfsg1-1

# Development Tools
# Development Tools - General
RUN apt update \
&& apt install --no-install-recommends -y \
wget=1.21.3-1+b2 \
doxygen=1.9.4-4 \
graphviz=2.42.2-7+b3 \
build-essential=12.9 \
cppcheck=2.10-2 \
bash-completion=1:2.11-6 \
vim=2:9.0.1378-2 \
wget=${WGET_VERSION} \
doxygen=${DOXYGEN_VERSION} \
graphviz=${GRAPHVIZ_VERSION} \
build-essential=${BUILD_ESSENTIAL_VERSION} \
cppcheck=${CPPCHECK_VERSION} \
bash-completion=${BASH_COMPLETION_VERSION} \
vim=${VIM_VERSION} \
# Development Tools - Debugging
gdb=13.1-3 \
nmap=7.93+dfsg1-1
gdb=${GDB_VERSION} \
nmap=${NMAP_VERSION}

# renovate: datasource=pypi depName=esbonio
ENV ESBONIO_VERSION=0.16.4
# renovate: datasource=pypi depName=doc8
ENV DOC8_VERSION=1.1.1

# Development Tools - Documentation
RUN python3 -m pip install --break-system-packages \
# language server RST/Sphinx
esbonio==0.16.4 \
esbonio==${ESBONIO_VERSION} \
# Style checker for RST/Sphinx
doc8==1.1.1
doc8==${DOC8_VERSION}

# renovate: datasource=repology depName=debian12/ca-certificates versioning=loose
ENV CA_CERTIFICATES_VERSION=20230311
# renovate: datasource=repology depName=debian12/curl versioning=loose
ENV CURL_VERSION=7.88.1-10+deb12u6

# Not managed by renovate, because no available datasource
ENV DOCKER_CE_VERSION=5:27.0.3-1~debian.12~bookworm
ENV DOCKER_CE_CLI_VERSION=5:27.1.1-1~debian.12~bookworm
ENV CONTAINERD_IO_VERSION=1.7.19-1
ENV DOCKER_BUILDX_PLUGIN_VERSION=0.16.1-1~debian.12~bookworm
ENV DOCKER_COMPOSE_PLUGIN_VERSION=2.29.1-1~debian.12~bookworm

# Development Tools - Docker
RUN apt update && apt install -y --no-install-recommends \
ca-certificates=20230311 \
curl=7.88.1-10+deb12u6 \
RUN apt update \
&& apt install --no-install-recommends -y \
ca-certificates=${CA_CERTIFICATES_VERSION} \
curl=${CURL_VERSION} \
&& install -m 0755 -d /etc/apt/keyrings \
&& curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc \
&& chmod a+r /etc/apt/keyrings/docker.asc \
Expand All @@ -48,11 +87,12 @@ RUN apt update && apt install -y --no-install-recommends \
tee /etc/apt/sources.list.d/docker.list > /dev/null \
&& apt update \
&& apt install -y --no-install-recommends \
docker-ce=5:27.0.3-1~debian.12~bookworm \
docker-ce-cli=5:27.1.1-1~debian.12~bookworm \
containerd.io=1.7.19-1 \
docker-buildx-plugin=0.16.1-1~debian.12~bookworm \
docker-compose-plugin=2.29.1-1~debian.12~bookworm
docker-ce=${DOCKER_CE_VERSION} \
docker-ce-cli=${DOCKER_CE_CLI_VERSION} \
containerd.io=${CONTAINERD_IO_VERSION} \
docker-buildx-plugin=${DOCKER_BUILDX_PLUGIN_VERSION} \
docker-compose-plugin=${DOCKER_COMPOSE_PLUGIN_VERSION}


RUN apt clean \
&& rm -rf /var/lib/apt/lists/*
Expand Down
Loading