Skip to content

Commit bf88894

Browse files
authored
ci(l2): adds step in release workflow to compile and cache solc with lower GLIBC version. (#5015)
**Motivation** This PR changes the ARM build environment from **Ubuntu 24.04** to **Ubuntu 22.04**. The goal is to compile Ethrex with an older **glibc**, increasing compatibility with systems running older Linux versions. It also updates how **Solidity** is handled. Since `solc` doesn’t publish ARM binaries, we previously used a third-party ARM build that required a newer glibc, breaking builds on Ubuntu 22.04. Now, `solc` is compiled from source and cached. This ensures it links against the same glibc version as the 22.04 system, allowing Ethrex to build and run on environments with lower glibc versions. **Description** - ARM build now targets Ubuntu 22.04. - `solc` is built from source and cached to match system glibc. - Improves binary portability across older Linux distributions.
1 parent fb15bd9 commit bf88894

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed

.github/workflows/tag_release.yaml

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
matrix:
2121
platform:
2222
- ubuntu-22.04
23-
- ubuntu-24.04-arm
23+
- ubuntu-22.04-arm
2424
- macos-latest
2525
stack:
2626
- l1
@@ -34,13 +34,14 @@ jobs:
3434
os: linux
3535
arch: x86_64
3636
cpu_flags: RUSTFLAGS='-C target-cpu=x86-64-v2'
37-
- platform: ubuntu-24.04-arm
37+
- platform: ubuntu-22.04-arm
3838
os: linux
3939
arch: aarch64
4040
- platform: macos-latest
4141
os: macos
4242
arch: aarch64
4343
- platform: macos-latest
44+
os: macos
4445
stack: l2
4546
features: l2,l2-sql
4647
- platform: ubuntu-22.04
@@ -49,10 +50,10 @@ jobs:
4950
- platform: ubuntu-22.04
5051
stack: l2_gpu
5152
features: l2,l2-sql,sp1,risc0,gpu
52-
- platform: ubuntu-24.04-arm
53+
- platform: ubuntu-22.04-arm
5354
stack: l2
5455
features: l2,l2-sql,sp1
55-
- platform: ubuntu-24.04-arm
56+
- platform: ubuntu-22.04-arm
5657
stack: l2_gpu
5758
features: l2,l2-sql,sp1,gpu
5859
- stack: l2_gpu
@@ -81,9 +82,8 @@ jobs:
8182
run: |
8283
curl -L https://sp1up.succinct.xyz | bash
8384
~/.sp1/bin/sp1up --version 5.0.8
84-
8585
- name: Set up QEMU (only Linux ARM)
86-
if: ${{ matrix.platform == 'ubuntu-24.04-arm' }}
86+
if: ${{ matrix.platform == 'ubuntu-22.04-arm' }}
8787
uses: docker/setup-qemu-action@v3
8888
with:
8989
platforms: amd64
@@ -97,7 +97,6 @@ jobs:
9797
~/.risc0/bin/rzup install cargo-risczero 3.0.3
9898
~/.risc0/bin/rzup install risc0-groth16
9999
~/.risc0/bin/rzup install rust
100-
101100
- name: Install CUDA (only Linux x86 GPU)
102101
uses: Jimver/[email protected]
103102
if: ${{ matrix.platform == 'ubuntu-22.04' && matrix.stack == 'l2_gpu' }}
@@ -107,23 +106,21 @@ jobs:
107106
method: "network"
108107
sub-packages: '["nvcc"]'
109108

110-
- name: Install solc
111-
if: ${{ matrix.platform != 'ubuntu-24.04-arm' }}
112-
uses: lambdaclass/get-solc@master
113-
with:
114-
version: v0.8.29
115-
token: ${{ secrets.GITHUB_TOKEN }}
116-
117109
- name: Install Protoc
118110
uses: arduino/setup-protoc@v3
119111
with:
120112
repo-token: ${{ secrets.GITHUB_TOKEN }}
121113

122-
- name: Install solc (Linux ARM)
123-
if: ${{ matrix.platform == 'ubuntu-24.04-arm' }}
114+
- name: Install solc
124115
run: |
125-
sudo curl -L -o /usr/local/bin/solc https://github.com/nikitastupin/solc/raw/refs/heads/main/linux/aarch64/solc-v0.8.29
126-
sudo chmod +x /usr/local/bin/solc
116+
if [[ "${{ matrix.os }}" == "linux" ]]; then
117+
sudo curl -L -o /usr/local/bin/solc https://github.com/argotorg/solidity/releases/download/v0.8.29/solc-static-linux
118+
sudo chmod +x /usr/local/bin/solc
119+
elif [[ "${{ matrix.os }}" == "macos" ]]; then
120+
sudo curl -L -o /usr/local/bin/solc https://github.com/argotorg/solidity/releases/download/v0.8.29/solc-macos
121+
sudo chmod +x /usr/local/bin/solc
122+
fi
123+
solc --version
127124
128125
- name: Build ethrex
129126
run: |

0 commit comments

Comments
 (0)