diff --git a/cross-build-all.sh b/cross-build-all.sh index 738893a..e03e758 100755 --- a/cross-build-all.sh +++ b/cross-build-all.sh @@ -16,9 +16,8 @@ mkdir -p target/assets 2>/dev/null || true # Cross-compile for each target platform for target in "${TARGETS[@]}"; do - echo; echo "########################################################################################"; echo - echo "Cross-compiling gui version for $target..." - + echo; echo "########################################################################################"; + echo "Cross-compiling gui version for $target..."; echo cross build --release --target "$target" done @@ -36,4 +35,34 @@ for target in "${TARGETS[@]}"; do cp -vf target/${target}/release/quick-serve${ext} target/assets/quick-serve-${target}${ext} || true done + +if [[ "$*" == *--release* ]]; then + # Tag the new version + version=$(grep '^version =' Cargo.toml | sed -E 's/version = "(.*)"/\1/') + notes=$(git log --pretty=format:'- %s' $(git describe --tags --abbrev=0 @^)..@) + # notes=$(git log $(git describe --tags --abbrev=0)..HEAD --oneline) + + echo "Creating release v$version with notes:" + echo "$notes" + + echo "Tagging the new version..." + git tag "v$version" -f + git push origin --tags -f + + echo "Creating a release on GitHub..." + gh release delete "v$version" || true + # Create a release on GitHub and upload the files + gh release create "v$version" target/assets/* --title "v$version" --notes "$notes" --generate-notes + + # Publish the new version to crates.io + echo; echo "Publishing the new version to crates.io..." + read -p "Do you want publish? (y/N): " answer + if [[ "$answer" == "y" ]]; then + cargo publish --allow-dirty --no-verify + else + cargo publish --allow-dirty --no-verify --dry-run + fi +fi + + exit 0