From 9b86114058b3931c5b4ddc931a8a2cfdc8b085b6 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Mon, 16 Jan 2023 13:29:44 +0000 Subject: [PATCH 1/2] ci: Use pyenv's `python-build` to install Python in lint task --- .cirrus.yml | 5 ++++- ci/lint/04_install.sh | 21 ++++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index b3ac6d06cbf..a19c82c0e95 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -67,11 +67,14 @@ task: name: 'lint [bionic]' << : *BASE_TEMPLATE container: - image: ubuntu:bionic # For python 3.6, oldest supported version according to doc/dependencies.md + image: ubuntu:bionic cpu: 1 memory: 1G # For faster CI feedback, immediately schedule the linters << : *CREDITS_TEMPLATE + python_cache: + folder: "/tmp/python" + fingerprint_script: cat .python-version /etc/os-release lint_script: - ./ci/lint_run_all.sh env: diff --git a/ci/lint/04_install.sh b/ci/lint/04_install.sh index 6f9a4709dde..7b3cf596525 100755 --- a/ci/lint/04_install.sh +++ b/ci/lint/04_install.sh @@ -7,7 +7,26 @@ export LC_ALL=C ${CI_RETRY_EXE} apt-get update -${CI_RETRY_EXE} apt-get install -y python3-pip curl git gawk jq +${CI_RETRY_EXE} apt-get install -y curl git gawk jq xz-utils + +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 + ( # Temporary workaround for https://github.com/bitcoin/bitcoin/pull/26130#issuecomment-1260499544 # Can be removed once the underlying image is bumped to something that includes git2.34 or later From 123043e99cf3aab9eef7e381b133477b518ac4d0 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Mon, 16 Jan 2023 13:30:00 +0000 Subject: [PATCH 2/2] ci: Bump lint task image to Ubuntu Jammy --- .cirrus.yml | 4 ++-- ci/lint/04_install.sh | 8 -------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index a19c82c0e95..68eb92539e8 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -64,10 +64,10 @@ compute_credits_template: &CREDITS_TEMPLATE use_compute_credits: $CIRRUS_REPO_FULL_NAME == 'bitcoin/bitcoin' && $CIRRUS_PR != "" task: - name: 'lint [bionic]' + name: 'lint [jammy]' << : *BASE_TEMPLATE container: - image: ubuntu:bionic + image: ubuntu:jammy cpu: 1 memory: 1G # For faster CI feedback, immediately schedule the linters diff --git a/ci/lint/04_install.sh b/ci/lint/04_install.sh index 7b3cf596525..201ede1fdde 100755 --- a/ci/lint/04_install.sh +++ b/ci/lint/04_install.sh @@ -27,14 +27,6 @@ export PATH="${PYTHON_PATH}/bin:${PATH}" command -v python3 python3 --version -( - # Temporary workaround for https://github.com/bitcoin/bitcoin/pull/26130#issuecomment-1260499544 - # Can be removed once the underlying image is bumped to something that includes git2.34 or later - sed -i -e 's/bionic/jammy/g' /etc/apt/sources.list - ${CI_RETRY_EXE} apt-get update - ${CI_RETRY_EXE} apt-get install -y --reinstall git -) - ${CI_RETRY_EXE} pip3 install codespell==2.2.1 ${CI_RETRY_EXE} pip3 install flake8==4.0.1 ${CI_RETRY_EXE} pip3 install mypy==0.942