Distribute binary executables in compressed package

This commit is contained in:
ngosang 2023-03-25 21:53:33 +01:00
parent 82a1cd835a
commit e0bf02fb8b
4 changed files with 19 additions and 12 deletions

View File

@ -6,7 +6,7 @@ on:
- "master"
jobs:
build:
tag-release:
runs-on: ubuntu-latest
steps:
-

View File

@ -6,7 +6,7 @@ on:
- 'v*.*.*'
jobs:
build:
build-docker-images:
runs-on: ubuntu-22.04
steps:
-

View File

@ -36,7 +36,7 @@ jobs:
draft: false
prerelease: false
build-linux:
build-linux-package:
name: Build Linux binary
needs: create-release
runs-on: ubuntu-22.04
@ -65,7 +65,7 @@ jobs:
with:
asset_paths: '["./dist/flaresolverr_*"]'
build-windows:
build-windows-package:
name: Build Windows binary
needs: create-release
runs-on: windows-2022

View File

@ -56,19 +56,23 @@ def download_chromium():
def run_pyinstaller():
sep = ';' if os.name == 'nt' else ':'
subprocess.check_call([sys.executable, "-m", "PyInstaller",
"--onefile",
"--icon", "resources/flaresolverr_logo.ico",
"--add-data", f"package.json{sep}.",
"--add-data", f"{os.path.join('dist_chrome', 'chrome')}{sep}chrome",
os.path.join("src", "flaresolverr.py")],
cwd=os.pardir)
exe_folder = os.path.join(os.path.dirname(os.path.abspath(__file__)), os.pardir, 'dist')
exe_name = 'flaresolverr.exe' if os.name == 'nt' else 'flaresolverr'
exe_new_name = 'flaresolverr_windows_x64.exe' if os.name == 'nt' else 'flaresolverr_linux_x64'
exe_path = os.path.join(exe_folder, exe_name)
exe_new_path = os.path.join(exe_folder, exe_new_name)
shutil.move(exe_path, exe_new_path)
print("Executable path: " + exe_new_path)
def compress_package():
dist_folder = os.path.join(os.path.dirname(os.path.abspath(__file__)), os.pardir, 'dist')
exe_folder = os.path.join(dist_folder, 'flaresolverr')
print("Executable folder: " + exe_folder)
compr_format = 'zip' if os.name == 'nt' else 'gztar'
compr_file_name = 'flaresolverr_windows_x64' if os.name == 'nt' else 'flaresolverr_linux_x64'
compr_file_path = os.path.join(dist_folder, compr_file_name)
shutil.make_archive(compr_file_path, compr_format, dist_folder)
print("Compressed file path: " + compr_file_path)
if __name__ == "__main__":
@ -84,4 +88,7 @@ if __name__ == "__main__":
print("Building pyinstaller executable... ")
run_pyinstaller()
print("Compressing package... ")
compress_package()
# NOTE: python -m pip install pyinstaller