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.
This commit is contained in:
parent
43ad402356
commit
eea478b9dc
2 changed files with 36 additions and 1 deletions
|
@ -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
|
||||
|
|
35
release.sh
Executable file
35
release.sh
Executable file
|
@ -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/"
|
Loading…
Reference in a new issue