11VERSION 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+
319build :
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