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" - "master"
jobs: jobs:
build: tag-release:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- -

View File

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

View File

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

View File

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