From a7cad8493a6d1b21fb713dc21588de98d0c00d2e Mon Sep 17 00:00:00 2001 From: Lyssieth Date: Sun, 8 Oct 2023 20:33:30 +0300 Subject: [PATCH] feat: initial commit --- .gitignore | 1 + .woodpecker.yml | 21 +++++++++++++++++++++ Cargo.lock | 7 +++++++ Cargo.toml | 9 +++++++++ Dockerfile | 29 +++++++++++++++++++++++++++++ Justfile | 7 +++++++ README.md | 3 +++ src/main.rs | 3 +++ 8 files changed, 80 insertions(+) create mode 100644 .gitignore create mode 100644 .woodpecker.yml create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 Dockerfile create mode 100644 Justfile create mode 100644 README.md create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..589f2cc --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,21 @@ +platform: linux/amd64 + +steps: + build-image: + image: woodpeckerci/plugin-docker-buildx + settings: + platforms: linux/amd64 + repo: forge.lys.ee/lyssieth/rave + secrets: [forge_username, forge_password] + dockerfile: Dockerfile + tags: + - latest + - ${CI_COMMIT_SHA} + push: true + compress: true + logins: + - registry: forge.lys.ee + username: + from_secret: forge_username + password: + from_secret: forge_password diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..a4c5bee --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "rave" +version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..f0f4679 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "rave" +version = "0.1.0" +edition = "2021" +publish = ["crates-io"] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5504b2d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,29 @@ +# --- Build --- +FROM clux/muslrust:latest AS build + +COPY Cargo.toml Cargo.lock /volume/ + +RUN mkdir -p /volume/src && touch /volume/src/lib.rs + +RUN cargo fetch --locked + +RUN cargo build --release + +RUN rm -rfv /volume/src/*.rs +COPY . . + +RUN rm -rfv /volume/target/*/release/rave +RUN cargo build --release --features docker + +RUN mv target/*-unknown-linux-musl/release/rave /tmp/rave + +# --- Runtime --- +FROM gcr.io/distroless/static AS runtime + +COPY --from=build /tmp/rave /rave + +VOLUME [ "/storage", "/config", "/cache" ] + +ENV RUST_LOG=info + +ENTRYPOINT ["/rave"] diff --git a/Justfile b/Justfile new file mode 100644 index 0000000..b38a666 --- /dev/null +++ b/Justfile @@ -0,0 +1,7 @@ +set dotenv-load := false + +build: + docker buildx build --pull --platform linux/amd64 -t "forge.lys.ee/lyssieth/rave:amd64" --load . + +run: build + docker run -it -v ./data:/storage lyssieth/rave:latest diff --git a/README.md b/README.md new file mode 100644 index 0000000..e2fbb2c --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# `rave` + +A basic bitch subsonic-compatible server thing written in Rust. \ No newline at end of file diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +}