From 98a8fe91124c5affba6053247079253bada94b93 Mon Sep 17 00:00:00 2001 From: kukkok3 <93382903+kukkok3@users.noreply.github.com> Date: Mon, 11 Sep 2023 14:02:46 +0200 Subject: [PATCH] adding earthfile --- Earthfile | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 Earthfile diff --git a/Earthfile b/Earthfile new file mode 100644 index 0000000000..fd2968ca06 --- /dev/null +++ b/Earthfile @@ -0,0 +1,73 @@ +# Set the Earthly version to 0.7 +VERSION 0.7 +FROM debian:stable-slim + +rust-toolchain: + FROM rust:1.71-slim-bullseye + RUN rustup component add rustfmt + +# Installs Cargo chef +install-chef: + FROM +rust-toolchain + RUN cargo install --debug cargo-chef + +# Prepares the local cache +prepare-cache: + FROM +install-chef + COPY --dir jormungandr jcli jormungandr-lib explorer modules testing . + COPY Cargo.lock Cargo.toml . + RUN cargo chef prepare + SAVE ARTIFACT recipe.json + SAVE IMAGE --cache-hint + +# Builds the local cache +build-cache: + FROM +install-chef + COPY +prepare-cache/recipe.json ./ + + # Install build dependencies + RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + build-essential \ + libssl-dev \ + libpq-dev \ + libsqlite3-dev \ + pkg-config \ + protobuf-compiler + + RUN cargo chef cook --release + SAVE ARTIFACT target + SAVE ARTIFACT $CARGO_HOME cargo_home + SAVE IMAGE --cache-hint + +# This is the default builder that all other builders should inherit from +builder: + FROM +rust-toolchain + + WORKDIR /src + + # Install build dependencies + RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + build-essential \ + libssl-dev \ + libpq-dev \ + libsqlite3-dev \ + pkg-config \ + protobuf-compiler + COPY --dir jormungandr jcli . + COPY Cargo.lock Cargo.toml . + COPY +build-cache/cargo_home $CARGO_HOME + COPY +build-cache/target target + SAVE ARTIFACT /src + +build: + FROM +builder + + COPY --dir jormungandr jcli jormungandr-lib explorer modules testing . + COPY Cargo.lock Cargo.toml . + + RUN cargo build --locked --release -p jormungandr -p jcli + + SAVE ARTIFACT /src/target/release/jormungandr jormungandr + SAVE ARTIFACT /src/target/release/jcli jcli