From eea478b9dc357561ae10f2937985402d374d6dc1 Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Sat, 26 Jan 2019 15:24:37 +0100 Subject: [PATCH] Add release script Add a script to generate the whole release properly. It first builds locally in release mode, then execute tests. Then it builds archives for Windows. Finally, it puts all release files (Windows archives, prebuilt server and checksums) in a separate release directory. --- Makefile.CrossWindows | 2 +- release.sh | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100755 release.sh 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/"