Skip to content

Commit 979a22d

Browse files
ludamadcharlielye
andauthored
chore(ci): try to make base image more stable (AztecProtocol#6144)
Seeing weird caching behaviour with the base image that uses FROM DOCKERFILE --------- Co-authored-by: Charlie Lye <[email protected]>
1 parent 4719ff1 commit 979a22d

1 file changed

Lines changed: 77 additions & 2 deletions

File tree

build-images/Earthfile

Lines changed: 77 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,80 @@
11
VERSION 0.8
22

3+
# TODO(AD): This is a kludge. There seem to be caching issues with FROM DOCKERFILE
4+
# This needs to be investigated with a better workaround, but, until then, this prevents CI from being unstable.
5+
# See Dockerfile for comments.
6+
7+
wasi-sdk:
8+
FROM aztecprotocol/wasi-sdk:22.0
9+
SAVE ARTIFACT /opt/wasi-sdk
10+
11+
osxcross:
12+
FROM aztecprotocol/osxcross:14.0
13+
SAVE ARTIFACT /opt/osxcross
14+
15+
foundry:
16+
FROM aztecprotocol/foundry:de33b6af53005037b463318d2628b5cfcaf39916
17+
SAVE ARTIFACT /opt/foundry
18+
319
build:
4-
FROM DOCKERFILE --target build .
5-
SAVE ARTIFACT /opt/foundry/bin/anvil
20+
FROM ubuntu:noble
21+
RUN apt update && \
22+
apt install -y \
23+
# Utils
24+
curl \
25+
git \
26+
curl \
27+
wget \
28+
jq \
29+
gawk \
30+
unzip \
31+
netcat-openbsd \
32+
parallel \
33+
# C++ (clang=18, which we will move to. 16 is for current build.)
34+
build-essential \
35+
cmake \
36+
ninja-build \
37+
clang \
38+
clang-16 \
39+
clang-format-16 \
40+
libc++-dev \
41+
libomp-dev \
42+
doxygen \
43+
# Node (18.19.1)
44+
nodejs \
45+
npm \
46+
# Python (clang bindings for wasm bindgen.)
47+
python3 \
48+
python3-clang && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
49+
50+
# Install wasi-sdk.
51+
COPY +wasi-sdk/wasi-sdk /opt/wasi-sdk
52+
53+
# Install osxcross. Requires developer to mount SDK from their mac host.
54+
COPY +osxcross/osxcross /opt/osxcross
55+
ENV PATH="/opt/osxcross/bin:$PATH"
56+
ENV LD_LIBRARY_PATH="/opt/osxcross/lib:$LD_LIBRARY_PATH"
57+
58+
# Install foundry.
59+
COPY +foundry/foundry /opt/foundry
60+
ENV PATH="/opt/foundry/bin:$PATH"
61+
62+
# Install rust and cross-compilers. Noir specifically uses 1.74.1.
63+
# We add everyone write ownership so downstream boxes can write.
64+
ENV RUSTUP_HOME=/opt/rust/rustup
65+
ENV CARGO_HOME=/opt/rust/cargo
66+
ENV PATH="/opt/rust/cargo/bin:$PATH"
67+
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.74.1 && \
68+
rustup target add wasm32-unknown-unknown wasm32-wasi aarch64-apple-darwin && \
69+
chmod -R a+w /opt/rust
70+
71+
# Install yq
72+
RUN curl -L https://github.com/mikefarah/yq/releases/download/v4.42.1/yq_linux_$(dpkg --print-architecture) \
73+
-o /usr/local/bin/yq && chmod +x /usr/local/bin/yq
74+
75+
# Install yarn
76+
RUN npm install --global yarn
77+
78+
# Install solhint
79+
RUN npm install --global solhint
80+
SAVE ARTIFACT /opt/foundry/bin/anvil

0 commit comments

Comments
 (0)