mirror of https://github.com/bitcoin/bitcoin
Adds a Dockerfile configuration that allows straightforward running of linters with compatible versions locally. This removes a ton of annoyance when trying to appease CI, because many of the linter versions are quite old and difficult to maintain locally. I realize that people may not be thrilled to more ancillary tooling to the repo, but I think this makes a lot of sense given the linter versions listed in this container configuration are dictated by this repo (within the CI configuration), so having these things live in two separate places is a recipe for version mismatches. Eventually we can likely just use this container on CI directly to avoid any chance of inconsistencies between local dev experience and CI.pull/26906/head
parent
01ec5308bf
commit
dff7ed5732
@ -0,0 +1,29 @@
|
||||
# See test/lint/README.md for usage.
|
||||
#
|
||||
# This container basically has to live in this directory in order to pull in the CI
|
||||
# install scripts. If it lived in the root directory, it would have to pull in the
|
||||
# entire repo as docker context during build; if it lived elsewhere, it wouldn't be
|
||||
# able to make back-references to pull in the install scripts. So here it lives.
|
||||
|
||||
FROM python:3.7-buster
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
ENV LC_ALL=C.UTF-8
|
||||
|
||||
# This is used by the 04_install.sh script; we can't read the Python version from
|
||||
# .python-version for the same reasons as above, and it's more efficient to pull a
|
||||
# preexisting Python image than it is to build from source.
|
||||
ENV SKIP_PYTHON_INSTALL=1
|
||||
|
||||
# Must be built from ./ci/lint/ for these paths to work.
|
||||
COPY ./docker-entrypoint.sh /entrypoint.sh
|
||||
COPY ./04_install.sh /install.sh
|
||||
|
||||
RUN /install.sh && \
|
||||
echo 'alias lint="./ci/lint/06_script.sh"' >> ~/.bashrc && \
|
||||
chmod 755 /entrypoint.sh && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
WORKDIR /bitcoin
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
export LC_ALL=C
|
||||
|
||||
# Fixes permission issues when there is a container UID/GID mismatch with the owner
|
||||
# of the mounted bitcoin src dir.
|
||||
git config --global --add safe.directory /bitcoin
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
bash -ic "./ci/lint/06_script.sh"
|
||||
else
|
||||
exec "$@"
|
||||
fi
|
Loading…
Reference in new issue