From 772bd217c3bee60e686a35db03fcc0f80a945132 Mon Sep 17 00:00:00 2001 From: Omar Date: Mon, 14 Jul 2025 12:17:13 +0300 Subject: [PATCH] Fixing the CI on Ubuntu (#31) * pin the version of geth used in CI * pin the version of geth used in CI * temp: run on each push * pin the version of geth used in CI * Make geth installation arch dependent * Remove temp run on push to branch * Add a comment on the need for pre-built binaries --- .github/workflows/test.yml | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fb4b7a1..0eeb93f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -99,9 +99,28 @@ jobs: - name: Install Geth on Ubuntu if: matrix.os == 'ubuntu-24.04' run: | - sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update - sudo apt-get install -y ethereum protobuf-compiler + sudo apt-get install -y protobuf-compiler + + # We were facing some issues in CI with the 1.16.* versions of geth, and specifically on + # Ubuntu. Eventually, we found out that the last version of geth that worked in our CI was + # version 1.15.11. Thus, this is the version that we want to use in CI. The PPA sadly does + # not have historic versions of Geth and therefore we need to resort to downloading pre + # built binaries for Geth and the surrounding tools which is what the following parts of + # the script do. + + sudo apt-get install -y wget ca-certificates tar + ARCH=$(uname -m) + if [ "$ARCH" = "x86_64" ]; then + URL="https://gethstore.blob.core.windows.net/builds/geth-alltools-linux-amd64-1.15.11-36b2371c.tar.gz" + elif [ "$ARCH" = "aarch64" ]; then + URL="https://gethstore.blob.core.windows.net/builds/geth-alltools-linux-arm64-1.15.11-36b2371c.tar.gz" + else + echo "Unsupported architecture: $ARCH" + exit 1 + fi + wget -qO- "$URL" | sudo tar xz -C /usr/local/bin --strip-components=1 + geth --version - name: Install Geth on macOS if: matrix.os == 'macos-14'