Skip to content

Commit

Permalink
adding earthfile
Browse files Browse the repository at this point in the history
  • Loading branch information
kukkok3 committed Sep 11, 2023
1 parent 19eac36 commit 98a8fe9
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions Earthfile
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 98a8fe9

Please sign in to comment.