diff options
| author | Fuwn <[email protected]> | 2024-03-05 05:58:41 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2024-03-05 05:58:41 -0800 |
| commit | 71f4b701d0341323f03e33d96f8db59796bbe6ad (patch) | |
| tree | 0158bc5f527ce0c5fd28086f7b5c9e37f141661e /Earthfile | |
| parent | feat(rustc): bump nightly (diff) | |
| download | locus-71f4b701d0341323f03e33d96f8db59796bbe6ad.tar.xz locus-71f4b701d0341323f03e33d96f8db59796bbe6ad.zip | |
ci(earthly): switch to earthly from docker
Diffstat (limited to 'Earthfile')
| -rw-r--r-- | Earthfile | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Earthfile b/Earthfile new file mode 100644 index 0000000..a6cd4ae --- /dev/null +++ b/Earthfile @@ -0,0 +1,62 @@ +VERSION 0.7 + +docker: + ARG tag=latest + + FROM gcr.io/distroless/static:nonroot + + WORKDIR /locus + + COPY +build/locus . + COPY +build/content ./content + + # CBA + USER root + + EXPOSE 1965 + + ENTRYPOINT ["./locus"] + + SAVE IMAGE --push fuwn/locus:$tag + +deps: + ARG rustc="nightly-2024-02-01" + + FROM clux/muslrust:$rustc + + RUN curl "https://static.rust-lang.org/rustup/archive/${RUSTUP_VER}/${RUST_ARCH}/rustup-init" -o rustup-init \ + && chmod +x rustup-init \ + && ./rustup-init -y --default-toolchain $rustc --profile minimal \ + && rm rustup-init + RUN ~/.cargo/bin/rustup target add x86_64-unknown-linux-musl + RUN echo "[build]\ntarget = \"x86_64-unknown-linux-musl\"" > ~/.cargo/config + RUN rustup component add rust-src --toolchain nightly-2024-02-01-x86_64-unknown-linux-gnu + +build: + FROM +deps + + WORKDIR /source + + RUN cargo new locus + + WORKDIR /source/locus + + COPY amenadiel/ ./amenadiel/ + COPY Cargo.* . + + RUN cargo build --release -Zbuild-std + + COPY .git .git + COPY content content + COPY src src + COPY build.rs build.rs + COPY yarte.toml yarte.toml + + RUN --mount=type=cache,target=/source/locus/target \ + --mount=type=cache,target=/root/.cargo/registry \ + cargo build --release --bin locus \ + && strip -s /source/locus/target/x86_64-unknown-linux-musl/release/locus \ + && mv /source/locus/target/x86_64-unknown-linux-musl/release/locus . + + SAVE ARTIFACT /source/locus/locus + SAVE ARTIFACT /source/locus/content |