mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-11 20:32:35 -03:00
250598a905
b68e5a7fef
lint: specify the right commit range when running locally (James O'Beirne)dff7ed5732
test: add an easy way to run linters locally (James O'Beirne) Pull request description: Adds a Dockerfile configuration ~~(originally written mostly by fanquake)~~ 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 add 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. ACKs for top commit: aureleoules: ACKb68e5a7fef
stickies-v: ACKb68e5a7fe
john-moffett: ACKb68e5a7fef
Tree-SHA512: 7ef7a5dae023d81fdb6296d5d92dfa074ee321c7993e607c9f014d0f21c91558611aa00fc3ce1edc7b5e68371aea0d27fa1931291a79bb867a6c783bb536775f
45 lines
1.7 KiB
Bash
Executable file
45 lines
1.7 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Copyright (c) 2018-2022 The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
export LC_ALL=C
|
|
|
|
${CI_RETRY_EXE} apt-get update
|
|
# Lint dependencies:
|
|
# - curl/xz-utils (to install shellcheck)
|
|
# - git (used in many lint scripts)
|
|
# - gpg (used by verify-commits)
|
|
${CI_RETRY_EXE} apt-get install -y curl xz-utils git gpg
|
|
|
|
if [ -z "${SKIP_PYTHON_INSTALL}" ]; then
|
|
PYTHON_PATH=/tmp/python
|
|
if [ ! -d "${PYTHON_PATH}/bin" ]; then
|
|
(
|
|
git clone https://github.com/pyenv/pyenv.git
|
|
cd pyenv/plugins/python-build || exit 1
|
|
./install.sh
|
|
)
|
|
# For dependencies see https://github.com/pyenv/pyenv/wiki#suggested-build-environment
|
|
${CI_RETRY_EXE} apt-get install -y build-essential libssl-dev zlib1g-dev \
|
|
libbz2-dev libreadline-dev libsqlite3-dev curl llvm \
|
|
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev \
|
|
clang
|
|
env CC=clang python-build "$(cat "${BASE_ROOT_DIR}/.python-version")" "${PYTHON_PATH}"
|
|
fi
|
|
export PATH="${PYTHON_PATH}/bin:${PATH}"
|
|
command -v python3
|
|
python3 --version
|
|
fi
|
|
|
|
${CI_RETRY_EXE} pip3 install codespell==2.2.1
|
|
${CI_RETRY_EXE} pip3 install flake8==5.0.4
|
|
${CI_RETRY_EXE} pip3 install mypy==0.971
|
|
${CI_RETRY_EXE} pip3 install pyzmq==24.0.1
|
|
${CI_RETRY_EXE} pip3 install vulture==2.6
|
|
|
|
SHELLCHECK_VERSION=v0.8.0
|
|
curl -sL "https://github.com/koalaman/shellcheck/releases/download/${SHELLCHECK_VERSION}/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz" | \
|
|
tar --xz -xf - --directory /tmp/
|
|
mv "/tmp/shellcheck-${SHELLCHECK_VERSION}/shellcheck" /usr/bin/
|