From 43e526c834094e1e220ef16ea8463918cb5acb51 Mon Sep 17 00:00:00 2001 From: red binder Date: Wed, 29 Apr 2026 01:23:18 +0200 Subject: [PATCH] Update CI --- .ci-scripts/make-edition.sh | 25 +++++++----------- Dockerfile | 52 +++++++++++++++++++++++-------------- README.md | 18 +++++-------- 3 files changed, 49 insertions(+), 46 deletions(-) diff --git a/.ci-scripts/make-edition.sh b/.ci-scripts/make-edition.sh index d03e2f1..2b4bb91 100755 --- a/.ci-scripts/make-edition.sh +++ b/.ci-scripts/make-edition.sh @@ -1,20 +1,15 @@ #!/usr/bin/env bash - export EDITION=$1 -export BA="--network=host --build-arg EDITION=$1 --build-arg DATABASE_URL="$DATABASE_URL"" source /etc/environment : "${RNEX_CONTAINER_PLATFORM:=podman}" -export BUILDKIT_PROGRESS=plain -# $RNEX_CONTAINER_PLATFORM build $BA -t "$CI_REGISTRY_IMAGE/$EDITION/dev-container:latest" --target=dev-container . -# $RNEX_CONTAINER_PLATFORM push "$CI_REGISTRY_IMAGE/$EDITION/dev-container:latest" -$RNEX_CONTAINER_PLATFORM build $BA -t "$CI_REGISTRY_IMAGE/$EDITION/node-holder:$CI_COMMIT_SHORT_SHA" --target=node-holder . -$RNEX_CONTAINER_PLATFORM build $BA -t "$CI_REGISTRY_IMAGE/$EDITION/proxy-secure:$CI_COMMIT_SHORT_SHA" --target=proxy-secure . -$RNEX_CONTAINER_PLATFORM build $BA -t "$CI_REGISTRY_IMAGE/$EDITION/proxy-insecure:$CI_COMMIT_SHORT_SHA" --target=proxy-insecure . -$RNEX_CONTAINER_PLATFORM build $BA -t "$CI_REGISTRY_IMAGE/$EDITION/backend-auth:$CI_COMMIT_SHORT_SHA" --target=backend-auth . -$RNEX_CONTAINER_PLATFORM build $BA -t "$CI_REGISTRY_IMAGE/$EDITION/backend-secure:$CI_COMMIT_SHORT_SHA" --target=backend-secure . -$RNEX_CONTAINER_PLATFORM push "$CI_REGISTRY_IMAGE/$EDITION/node-holder:$CI_COMMIT_SHORT_SHA" -$RNEX_CONTAINER_PLATFORM push "$CI_REGISTRY_IMAGE/$EDITION/proxy-secure:$CI_COMMIT_SHORT_SHA" -$RNEX_CONTAINER_PLATFORM push "$CI_REGISTRY_IMAGE/$EDITION/proxy-insecure:$CI_COMMIT_SHORT_SHA" -$RNEX_CONTAINER_PLATFORM push "$CI_REGISTRY_IMAGE/$EDITION/backend-auth:$CI_COMMIT_SHORT_SHA" -$RNEX_CONTAINER_PLATFORM push "$CI_REGISTRY_IMAGE/$EDITION/backend-secure:$CI_COMMIT_SHORT_SHA" +for TARGET in node-holder proxy-secure proxy-insecure backend-auth backend-secure; do + $RNEX_CONTAINER_PLATFORM build \ + --network=host \ + --build-arg EDITION="$EDITION" \ + --build-arg DATABASE_URL="$DATABASE_URL" \ + -t "$CI_REGISTRY_IMAGE/$EDITION/$TARGET:$CI_COMMIT_SHORT_SHA" \ + --target="$TARGET" . + + $RNEX_CONTAINER_PLATFORM push "$CI_REGISTRY_IMAGE/$EDITION/$TARGET:$CI_COMMIT_SHORT_SHA" +done \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 059b9e8..44e7ace 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,43 +1,57 @@ -FROM rust:alpine AS build-container - -RUN apk add --no-cache protobuf-dev git musl-dev lld openssl-dev openssl-libs-static yq bash - -FROM build-container AS builder - +# syntax=docker/dockerfile:1 +FROM rust:alpine AS chef +RUN apk add --no-cache musl-dev lld g++ make +RUN cargo install cargo-chef WORKDIR /app +FROM chef AS planner COPY . . +RUN cargo chef prepare --recipe-path recipe.json +FROM chef AS builder +RUN apk add --no-cache protobuf-dev git openssl-dev openssl-libs-static bash yq + +COPY --from=planner /app/recipe.json recipe.json ARG EDITION ARG DATABASE_URL -RUN git submodule update --init --recursive +RUN --mount=type=cache,target=/usr/local/cargo/registry \ + --mount=type=cache,target=/app/target \ + cargo chef cook --release --recipe-path recipe.json --target x86_64-unknown-linux-musl && \ + cargo chef cook --tests --target x86_64-unknown-linux-musl --recipe-path recipe.json + +COPY . . +RUN --mount=type=cache,target=/usr/local/cargo/registry \ + --mount=type=cache,target=/app/target \ + ./test-edition.sh && ./build-edition.sh && \ + mkdir -p /app/dist && \ + cp /app/target/x86_64-unknown-linux-musl/release/edge_node_holder_server /app/dist/ && \ + cp /app/target/x86_64-unknown-linux-musl/release/proxy_insecure /app/dist/ && \ + cp /app/target/x86_64-unknown-linux-musl/release/proxy_secure /app/dist/ && \ + cp /app/target/x86_64-unknown-linux-musl/release/backend_server_insecure /app/dist/ && \ + cp /app/target/x86_64-unknown-linux-musl/release/backend_server_secure /app/dist/ -RUN ./test-edition.sh -RUN ./build-edition.sh FROM scratch AS node-holder -COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/edge_node_holder_server /edge_node_holder_server +COPY --from=builder /app/dist/edge_node_holder_server /edge_node_holder_server ENTRYPOINT ["/edge_node_holder_server"] - FROM scratch AS proxy-insecure -COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/proxy_insecure /proxy_insecure +COPY --from=builder /app/dist/proxy_insecure /proxy_insecure ENTRYPOINT ["/proxy_insecure"] FROM scratch AS proxy-secure -COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/proxy_secure /proxy_secure +COPY --from=builder /app/dist/proxy_secure /proxy_secure ENTRYPOINT ["/proxy_secure"] - FROM scratch AS backend-auth -COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/backend_server_insecure /backend_server_insecure +COPY --from=builder /app/dist/backend_server_insecure /backend_server_insecure ENTRYPOINT ["/backend_server_insecure"] FROM scratch AS backend-secure -COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/backend_server_secure /backend_server_secure +COPY --from=builder /app/dist/backend_server_secure /backend_server_secure ENTRYPOINT ["/backend_server_secure"] -# make sure the final output container is the dev container so that we can use it from the devcontainer.json -FROM build-container AS dev-container -RUN apk add openjdk21-jdk gcompat +FROM chef AS dev-container +RUN apk add --no-cache openjdk21-jdk gcompat git bash protobuf-dev +COPY --from=builder /app/dist/* /usr/local/bin/ \ No newline at end of file diff --git a/README.md b/README.md index c5f1ada..b1385b7 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,14 @@ # Splatoon NEX Server in Rust ## Credits: -- Pretendo team for the rest of the Servers and Reverse engineering efforts +- Pretendo team for their reverse engineering efforts - Kinnay for his huge work on reversing nex servers and documentation(https://github.com/Kinnay/NintendoClients/) - Splatfestival testing team for helping us test our messes of code -- The SPFN team(Bloxer, Ceantix and RusticMaple) +- The SPFN team(RusticMaple, BloxerHD, Ceantix, RedBinder0526) -This nex implementation was not created and is not intended to compete with pretendo, -we wholeheartedly support pretendo. +This NEX implementation was not created to rival Pretendo, we don't want any bad blood between anyone. This project would never have been possible without their reverse engineering efforts. -As such if you want to respect the Authors wishes(Maple(Me) is pretty much the sole author of Rust-Nex), do not -use it if you mean any harm to pretendo. If you do show intent to harm them you will be blocked from ever contributing -and will be refused support, as such please also refrain from asking for support if you have been blocked by pretendo. +As such if you want to respect the Authors wishes, do not use it if you mean any harm to Pretendo. (harm falls under e.g. using this software while also sabotaging pretendo) If you do show intent to harm them you will be blocked from ever contributing and will be refused support. - -I felt like this needed to be said as there are far too many pretendo copycats who blatantly copy their code and use -their reversal efforts with no credits in sight in an attempt to harm them for some grudge or stupid reason. -I feel that by working together and not against each other we can reach a better and healthier future for the community, -health of developers and numerous more reasons. +We felt like this needed to be said as there are far too many Pretendo copycats who blatantly copy their code and use their reversal efforts with no credits in sight in an attempt to harm them for some grudge or stupid reason. +We feel that by working together and not against each other we can reach a better and healthier future for the community, health of developers and numerous more reasons.