From 4ccdba8ccbab4bcab6e1fea5ce036bbf49aeb8b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Mon, 11 Mar 2024 21:35:50 +0100 Subject: [PATCH] [scripts] update release.py build Linux binary in ubuntu22.04 VM --- scripts/pyinstaller.py | 3 +++ scripts/release.sh | 42 +++++++++++++++++++++++++++--------------- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/scripts/pyinstaller.py b/scripts/pyinstaller.py index 5a81a1b5..ee22ecad 100755 --- a/scripts/pyinstaller.py +++ b/scripts/pyinstaller.py @@ -13,6 +13,7 @@ def main(): parser = argparse.ArgumentParser() parser.add_argument("-o", "--os") parser.add_argument("-a", "--arch") + parser.add_argument("-e", "--extension") args = parser.parse_args() name = "gallery-dl" @@ -20,6 +21,8 @@ def main(): name = "{}_{}".format(name, args.os.partition("-")[0].lower()) if args.arch == "x86": name += "_x86" + if args.extension: + name = "{}.{}".format(name, args.extension.lower()) PyInstaller.__main__.run([ "--onefile", diff --git a/scripts/release.sh b/scripts/release.sh index 8b84b980..09127b59 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -53,31 +53,43 @@ build-linux() { cd "${ROOTDIR}" echo Building Linux executable - VENV_PATH="/tmp/venv" - VENV_PYTHON="${VENV_PATH}/bin/python" - - rm -rf "${VENV_PATH}" - python -m virtualenv "${VENV_PATH}" - - $VENV_PYTHON -m pip install requests requests[socks] yt-dlp pyyaml secretstorage pyinstaller - $VENV_PYTHON ./scripts/pyinstaller.py + build-vm 'ubuntu22.04' 'gallery-dl.bin' } build-windows() { - cd "${ROOTDIR}/dist" + cd "${ROOTDIR}" echo Building Windows executable - # remove old executable - rm -f "gallery-dl.exe" + build-vm 'windows7_x86_sp1' 'gallery-dl.exe' +} + +build-vm() { + VMNAME="$1" + BINNAME="$2" + TMPPATH="/tmp/gallery-dl/dist/$BINNAME" - # build windows exe in vm - ln -fs "${ROOTDIR}" /tmp/ - vmstart "windows7_x86_sp1" & + # launch VM + vmstart "$VMNAME" & disown - while [ ! -e "gallery-dl.exe" ] ; do + + # copy source files + mkdir -p /tmp/gallery-dl + cp -a -t /tmp/gallery-dl -- \ + ./gallery_dl ./scripts ./data ./setup.py ./README.rst + + # remove old executable + rm -f "./dist/$BINNAME" + + # wait for new executable + while [ ! -e "$TMPPATH" ] ; do sleep 5 done sleep 2 + + # move + mv "$TMPPATH" "./dist/$BINNAME" + + rm -r /tmp/gallery-dl } sign() {