diff --git a/Makefile.CrossWindows b/Makefile.CrossWindows index 99a35cab..0f7b14a6 100644 --- a/Makefile.CrossWindows +++ b/Makefile.CrossWindows @@ -34,7 +34,7 @@ WIN32_TARGET := $(WIN32_TARGET_DIR)-$(VERSION).zip WIN64_TARGET := $(WIN64_TARGET_DIR)-$(VERSION).zip release: clean zip-win32 zip-win64 sums - @echo "Release created in $(DIST)/." + @echo "Windows archives generated in $(DIST)/" clean: $(GRADLE) clean diff --git a/release.sh b/release.sh new file mode 100755 index 00000000..ca632e00 --- /dev/null +++ b/release.sh @@ -0,0 +1,35 @@ +#!/bin/bash +set -e + +# build and test locally +BUILDDIR=build_release +rm -rf "$BUILDDIR" +meson "$BUILDDIR" --buildtype release --strip -Db_lto=true +cd "$BUILDDIR" +ninja +ninja test +cd - + +# build Windows releases +make -f Makefile.CrossWindows + +# the generated server must be the same everywhere +cmp "$BUILDDIR/server/scrcpy-server.jar" dist/scrcpy-win32/scrcpy-server.jar +cmp "$BUILDDIR/server/scrcpy-server.jar" dist/scrcpy-win64/scrcpy-server.jar + +# get version name +TAG=$(git describe --tags --always) + +# create release directory +mkdir -p "release-$TAG" +cp "$BUILDDIR/server/scrcpy-server.jar" "release-$TAG/scrcpy-server-$TAG.jar" +cp "dist/scrcpy-win32-$TAG.zip" "release-$TAG/" +cp "dist/scrcpy-win64-$TAG.zip" "release-$TAG/" + +# generate checksums +cd "release-$TAG" +sha256sum "scrcpy-server-$TAG.jar" \ + "scrcpy-win32-$TAG.zip" \ + "scrcpy-win64-$TAG.zip" > SHA256SUMS.txt + +echo "Release generated in release-$TAG/"