Skip to content

Commit 5006a68

Browse files
committed
Add Ubuntu 22.04 image
1 parent d5d4558 commit 5006a68

File tree

3 files changed

+112
-1
lines changed

3 files changed

+112
-1
lines changed

.github/workflows/buildpack-deps.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
- 'scripts/docker/buildpack-deps/Dockerfile.emscripten'
88
- 'scripts/docker/buildpack-deps/Dockerfile.ubuntu.clang.ossfuzz'
99
- 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2004'
10+
- 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2204'
1011
- 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2404'
1112
- 'scripts/docker/buildpack-deps/Dockerfile.ubuntu2404.clang'
1213

@@ -23,7 +24,7 @@ jobs:
2324
strategy:
2425
fail-fast: false
2526
matrix:
26-
image_variant: [emscripten, ubuntu.clang.ossfuzz, ubuntu2004, ubuntu2404, ubuntu2404.clang]
27+
image_variant: [emscripten, ubuntu.clang.ossfuzz, ubuntu2004, ubuntu2204, ubuntu2404, ubuntu2404.clang]
2728

2829
steps:
2930
- uses: actions/checkout@v4
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
build.sh
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# vim:syntax=dockerfile
2+
#------------------------------------------------------------------------------
3+
# Dockerfile for building and testing Solidity Compiler on CI
4+
# Target: Ubuntu 22.04 (Jammy Jellyfish)
5+
# URL: https://hub.docker.com/r/ethereum/solidity-buildpack-deps
6+
#
7+
# This file is part of solidity.
8+
#
9+
# solidity is free software: you can redistribute it and/or modify
10+
# it under the terms of the GNU General Public License as published by
11+
# the Free Software Foundation, either version 3 of the License, or
12+
# (at your option) any later version.
13+
#
14+
# solidity is distributed in the hope that it will be useful,
15+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
16+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17+
# GNU General Public License for more details.
18+
#
19+
# You should have received a copy of the GNU General Public License
20+
# along with solidity. If not, see <http://www.gnu.org/licenses/>
21+
#
22+
# (c) 2016-2025 solidity contributors.
23+
#------------------------------------------------------------------------------
24+
FROM buildpack-deps:jammy AS base
25+
LABEL version="1"
26+
27+
ARG DEBIAN_FRONTEND=noninteractive
28+
29+
RUN set -ex; \
30+
dist=$(grep DISTRIB_CODENAME /etc/lsb-release | cut -d= -f2); \
31+
echo "deb http://ppa.launchpad.net/ethereum/cpp-build-deps/ubuntu $dist main" >> /etc/apt/sources.list ; \
32+
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1c52189c923f6ca9 ; \
33+
apt-get update; \
34+
apt-get install -qqy --no-install-recommends \
35+
build-essential \
36+
cmake \
37+
jq \
38+
clang \
39+
libclang-rt-dev \
40+
libboost-filesystem-dev \
41+
libboost-program-options-dev \
42+
libboost-system-dev \
43+
libboost-test-dev \
44+
libcln-dev \
45+
locales-all \
46+
lsof \
47+
ninja-build \
48+
python3-pip \
49+
python3-sphinx \
50+
software-properties-common \
51+
sudo \
52+
unzip \
53+
zip; \
54+
pip3 install \
55+
codecov \
56+
colorama \
57+
deepdiff \
58+
parsec \
59+
pygments-lexer-solidity \
60+
pylint \
61+
requests \
62+
tabulate \
63+
z3-solver;
64+
65+
# Eldarica
66+
RUN set -ex; \
67+
apt-get update; \
68+
apt-get install -qqy \
69+
openjdk-11-jre; \
70+
eldarica_version="2.1"; \
71+
wget "https://github.com/uuverifiers/eldarica/releases/download/v${eldarica_version}/eldarica-bin-${eldarica_version}.zip" -O /opt/eld_binaries.zip; \
72+
test "$(sha256sum /opt/eld_binaries.zip)" = "0ac43f45c0925383c9d2077f62bbb515fd792375f3b2b101b30c9e81dcd7785c /opt/eld_binaries.zip"; \
73+
unzip /opt/eld_binaries.zip -d /opt; \
74+
rm -f /opt/eld_binaries.zip;
75+
76+
# CVC5
77+
RUN set -ex; \
78+
cvc5_version="1.2.0"; \
79+
cvc5_archive_name="cvc5-Linux-x86_64-static"; \
80+
wget "https://github.com/cvc5/cvc5/releases/download/cvc5-${cvc5_version}/${cvc5_archive_name}.zip" -O /opt/cvc5.zip; \
81+
test "$(sha256sum /opt/cvc5.zip)" = "d18f174ff9a11923c32c3f871f844ed16bd77a28f51050b8e7c8d821c98a1c2e /opt/cvc5.zip"; \
82+
unzip -j /opt/cvc5.zip "${cvc5_archive_name}/bin/cvc5" -d /usr/bin; \
83+
rm -f /opt/cvc5.zip;
84+
85+
# Z3
86+
RUN set -ex; \
87+
z3_version="4.13.3"; \
88+
z3_archive_name="z3-${z3_version}-x64-glibc-2.35"; \
89+
wget "https://github.com/Z3Prover/z3/releases/download/z3-${z3_version}/${z3_archive_name}.zip" -O /opt/z3.zip; \
90+
test "$(sha256sum /opt/z3.zip)" = "32c7377026733c9d7b33c21cd77a68f50ba682367207b031a6bfd80140a8722f /opt/z3.zip"; \
91+
unzip -j /opt/z3.zip "${z3_archive_name}/bin/z3" -d /usr/bin; \
92+
rm -f /opt/z3.zip;
93+
94+
FROM base AS libraries
95+
96+
# EVMONE
97+
RUN set -ex; \
98+
wget -O /usr/src/evmone.tar.gz https://github.com/ethereum/evmone/releases/download/v0.12.0/evmone-0.12.0-linux-x86_64.tar.gz; \
99+
test "$(sha256sum /usr/src/evmone.tar.gz)" = "1c7b5eba0c8c3b3b2a7a05101e2d01a13a2f84b323989a29be66285dba4136ce /usr/src/evmone.tar.gz"; \
100+
cd /usr; \
101+
tar -xf /usr/src/evmone.tar.gz; \
102+
rm -rf /usr/src/evmone.tar.gz
103+
104+
FROM base
105+
COPY --from=libraries /usr/lib /usr/lib
106+
COPY --from=libraries /usr/bin /usr/bin
107+
COPY --from=libraries /usr/include /usr/include
108+
COPY --from=libraries /opt/eldarica /opt/eldarica
109+
ENV PATH="$PATH:/opt/eldarica"

0 commit comments

Comments
 (0)