diff --git a/bin/build-release.sh b/bin/build-release.sh new file mode 100755 index 0000000..636165b --- /dev/null +++ b/bin/build-release.sh @@ -0,0 +1,27 @@ +#!/bin/bash +set -e + +# Install the Dioxus CLI +#cargo install dioxus-cli --version 0.7.1 + +# Build the Dioxus web app (assumes workspace subproject at ./gui) +cd gui +dx build --platform web --release +cd .. + +# Build the backend (proxy package) +#cargo build --release -p proxy +# +## Prepare artifact directories +#mkdir -p artifacts +# +## Copy Dioxus webroot (usually at gui/dist) +#cp -r gui/dist artifacts/webroot +# +## Copy backend binary (proxy) +## Finds the built binary under target/release/ +#PROXY_PATH=$(cargo metadata --format-version=1 --no-deps | +# jq -r '.packages[] | select(.name=="proxy") | .targets[] | select(.kind[] == "bin") | .name') +#cp "target/release/$PROXY_PATH" "artifacts/proxy" +# +#echo "Artifacts have been prepared at ./artifacts" diff --git a/bin/release.sh b/bin/release.sh new file mode 100755 index 0000000..47f201d --- /dev/null +++ b/bin/release.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +set -e + +mkdir -p ./cargo-tmp +mkdir -p ./docker-target + +rm -rf ./docker-tmp +mkdir ./docker-tmp +rsync -av --exclude-from=.gitignore --exclude .git/ --exclude docker-tmp/ --exclude cargo-tmp/ --exclude docker-target/ ./ ./docker-tmp/ + +docker build -f ./docker/release-builder.Dockerfile -t mumbleweb2-builder:latest . + +docker run -it --rm \ + -v "$(pwd)/docker-tmp":/work \ + -v "$(pwd)/docker-target":/work/target \ + -v "$(pwd)/cargo-tmp/registry":/usr/local/cargo/registry \ + -v "$(pwd)/cargo-tmp/git":/usr/local/cargo/git \ + -w /work \ + mumbleweb2-builder:latest /bin/bash ./bin/build-release.sh diff --git a/docker/release-builder.Dockerfile b/docker/release-builder.Dockerfile new file mode 100644 index 0000000..2d4447c --- /dev/null +++ b/docker/release-builder.Dockerfile @@ -0,0 +1,6 @@ +#FROM rust:latest +FROM rust:1.90.0-trixie + +RUN curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash + +RUN cargo binstall dioxus-cli --version 0.6.3