From 61669dc7c7d28abbc5d4defa258727bf847f3087 Mon Sep 17 00:00:00 2001 From: Tom French Date: Mon, 4 Nov 2024 10:09:29 +0000 Subject: [PATCH 1/4] chore: switch to installing published binaries of foundry --- barretenberg/acir_tests/Dockerfile.bb.sol | 2 +- barretenberg/sol/Dockerfile | 2 +- bootstrap.sh | 5 ++--- yarn-project/end-to-end/Dockerfile | 4 ++-- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/barretenberg/acir_tests/Dockerfile.bb.sol b/barretenberg/acir_tests/Dockerfile.bb.sol index 9b09ba86d66..96f1d640d3e 100644 --- a/barretenberg/acir_tests/Dockerfile.bb.sol +++ b/barretenberg/acir_tests/Dockerfile.bb.sol @@ -10,7 +10,7 @@ COPY --from=noir-acir-tests /usr/src/noir/noir-repo/test_programs /usr/src/noir/ RUN curl -L https://foundry.paradigm.xyz | bash ENV PATH="${PATH}:/root/.foundry/bin" -RUN foundryup +RUN foundryup -v nightly-25f24e677a6a32a62512ad4f561995589ac2c7dc WORKDIR /usr/src/barretenberg/acir_tests COPY . . diff --git a/barretenberg/sol/Dockerfile b/barretenberg/sol/Dockerfile index fc57077ff89..310a3fb2373 100644 --- a/barretenberg/sol/Dockerfile +++ b/barretenberg/sol/Dockerfile @@ -40,7 +40,7 @@ COPY ./sol . # Download and install foundry RUN curl -L https://foundry.paradigm.xyz | bash ENV PATH="${PATH}:/root/.foundry/bin" -RUN foundryup +RUN foundryup -v nightly-25f24e677a6a32a62512ad4f561995589ac2c7dc RUN cd ../cpp/srs_db && ./download_ignition.sh 3 && cd ../../sol diff --git a/bootstrap.sh b/bootstrap.sh index 5c0f807af75..ca72bf35ca9 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -74,10 +74,9 @@ function check_toolchains { if ! $tool --version 2> /dev/null | grep 25f24e6 > /dev/null; then encourage_dev_container echo "$tool not in PATH or incorrect version (requires 25f24e677a6a32a62512ad4f561995589ac2c7dc)." - echo "Installation: https://book.getfoundry.sh/getting-started/installation (requires rust 1.79+)" - echo " rustup toolchain install 1.79" + echo "Installation: https://book.getfoundry.sh/getting-started/installation" echo " curl -L https://foundry.paradigm.xyz | bash" - echo " foundryup -b 25f24e677a6a32a62512ad4f561995589ac2c7dc" + echo " foundryup -v nightly-25f24e677a6a32a62512ad4f561995589ac2c7dc" exit 1 fi done diff --git a/yarn-project/end-to-end/Dockerfile b/yarn-project/end-to-end/Dockerfile index 613edc427d3..1650c072e56 100644 --- a/yarn-project/end-to-end/Dockerfile +++ b/yarn-project/end-to-end/Dockerfile @@ -39,7 +39,7 @@ RUN rm -rf /usr/src/noir-projects /usr/src/l1-contracts # Anvil. Hacky, but can't be bothered handling foundry image as we're moving to earthly. RUN curl -L https://foundry.paradigm.xyz | bash -RUN /root/.foundry/bin/foundryup --version nightly-25f24e677a6a32a62512ad4f561995589ac2c7dc && mkdir -p /usr/src/foundry/bin && cp /root/.foundry/bin/anvil /usr/src/foundry/bin/anvil +RUN /root/.foundry/bin/foundryup -v nightly-25f24e677a6a32a62512ad4f561995589ac2c7dc && mkdir -p /usr/src/foundry/bin && cp /root/.foundry/bin/anvil /usr/src/foundry/bin/anvil # Create minimal image. FROM node:18.19.1-slim @@ -52,4 +52,4 @@ RUN apt-get update && apt-get install jq gnupg wget netcat-openbsd -y && \ ENV CHROME_BIN="/usr/bin/google-chrome-stable" COPY --from=builder /usr/src /usr/src WORKDIR /usr/src/yarn-project/end-to-end -ENTRYPOINT ["yarn", "test"] \ No newline at end of file +ENTRYPOINT ["yarn", "test"] From a72c0011e42a2638c0e2b00a750549e7b4d7343a Mon Sep 17 00:00:00 2001 From: Tom French Date: Mon, 4 Nov 2024 23:48:14 +0000 Subject: [PATCH 2/4] chore: switch `build-images` over to using foundry releases --- build-images/Earthfile | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/build-images/Earthfile b/build-images/Earthfile index 8d3c577e459..ebcf7ae43f5 100644 --- a/build-images/Earthfile +++ b/build-images/Earthfile @@ -85,36 +85,23 @@ osxcross: ######################################################################################################################## # Build foundry. -foundry-build: +foundry: LET FOUNDRY_TAG = 25f24e677a6a32a62512ad4f561995589ac2c7dc FROM +base-build - # We use rustup rather than cargo to manage the cargo version via a tool-chain file - # It is done this way to avoid conflicting with noir builds - # This image should only be rebuilt when our foundry tag changes, so it should be extremely infrequent - RUN apt remove -y cargo - RUN apt update && apt install -y rustup - RUN ulimit -n 65535 \ - && git clone --depth 1 --branch nightly-$FOUNDRY_TAG https://github.com/foundry-rs/foundry.git \ - && cd foundry \ - && echo '[toolchain]\nchannel = "1.80.0"\n' > rust-toolchain.toml \ - && cargo build --release \ + + LET FOUNDRY_BIN_DIR = "/root/.foundry/bin" + + RUN curl -L https://foundry.paradigm.xyz | bash \ + && $FOUNDRY_BIN_DIR/foundryup -v nightly-$FOUNDRY_TAG \ && mkdir -p /opt/foundry/bin \ && for t in forge cast anvil chisel; do \ - mv ./target/release/$t /opt/foundry/bin/$t; \ + mv $FOUNDRY_BIN_DIR/$t /opt/foundry/bin/$t; \ strip /opt/foundry/bin/$t; \ done \ - && rm -rf /foundry - SAVE ARTIFACT /opt/foundry /opt/foundry - ARG TARGETARCH - SAVE IMAGE --push aztecprotocol/cache:foundry-build-$FOUNDRY_TAG-$TARGETARCH + && rm -rf $FOUNDRY_BIN_DIR -foundry: - BUILD +foundry-build - LET FOUNDRY_TAG = 25f24e677a6a32a62512ad4f561995589ac2c7dc + SAVE ARTIFACT /opt/foundry /opt/foundry ARG TARGETARCH - FROM ubuntu:noble - COPY +foundry-build/opt/foundry /opt/foundry - ENV PATH="/opt/foundry/bin:$PATH" SAVE IMAGE --push aztecprotocol/foundry:$FOUNDRY_TAG-$TARGETARCH ######################################################################################################################## From 07ef1f5f15b1a98e0c6032e438afe78f69e96a01 Mon Sep 17 00:00:00 2001 From: Tom French Date: Mon, 4 Nov 2024 23:55:01 +0000 Subject: [PATCH 3/4] . --- build-images/Earthfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build-images/Earthfile b/build-images/Earthfile index ebcf7ae43f5..8787a201cdc 100644 --- a/build-images/Earthfile +++ b/build-images/Earthfile @@ -147,7 +147,7 @@ build: COPY +wasi-sdk/opt/wasi-sdk /opt/wasi-sdk # Install foundry. - COPY +foundry-build/opt/foundry /opt/foundry + COPY +foundry/opt/foundry /opt/foundry ENV PATH="/opt/foundry/bin:$PATH" # Install rust and cross-compilers. Noir specifically uses 1.74.1. From af934efbdb623962be43ee2d6faa9806dcb7ca9d Mon Sep 17 00:00:00 2001 From: Tom French Date: Mon, 4 Nov 2024 23:56:09 +0000 Subject: [PATCH 4/4] . --- build-images/Earthfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build-images/Earthfile b/build-images/Earthfile index 8787a201cdc..3448d027525 100644 --- a/build-images/Earthfile +++ b/build-images/Earthfile @@ -101,6 +101,8 @@ foundry: && rm -rf $FOUNDRY_BIN_DIR SAVE ARTIFACT /opt/foundry /opt/foundry + ENV PATH="/opt/foundry/bin:$PATH" + ARG TARGETARCH SAVE IMAGE --push aztecprotocol/foundry:$FOUNDRY_TAG-$TARGETARCH