From 1290a9863fc6cc2b9298e235c428e8b88fca139d Mon Sep 17 00:00:00 2001 From: soxoj <31013580+soxoj@users.noreply.github.com> Date: Sun, 7 Nov 2021 20:12:30 +0300 Subject: [PATCH] PyInstaller workflow (#206) * PyInstaller workflow --- .github/workflows/pyinstaller.yml | 24 +++++++++++++ pyinstaller/maigret_standalone.py | 7 ++++ pyinstaller/maigret_standalone.spec | 55 +++++++++++++++++++++++++++++ pyinstaller/requirements.txt | 5 +++ 4 files changed, 91 insertions(+) create mode 100644 .github/workflows/pyinstaller.yml create mode 100755 pyinstaller/maigret_standalone.py create mode 100644 pyinstaller/maigret_standalone.spec create mode 100644 pyinstaller/requirements.txt diff --git a/.github/workflows/pyinstaller.yml b/.github/workflows/pyinstaller.yml new file mode 100644 index 0000000..b4fde8c --- /dev/null +++ b/.github/workflows/pyinstaller.yml @@ -0,0 +1,24 @@ +name: Package exe with PyInstaller - Windows + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: PyInstaller Windows + uses: JackMcKew/pyinstaller-action-windows@main + with: + path: pyinstaller + + - uses: actions/upload-artifact@v2 + with: + name: maigret_standalone + path: pyinstaller/dist/windows # or path/to/artifact diff --git a/pyinstaller/maigret_standalone.py b/pyinstaller/maigret_standalone.py new file mode 100755 index 0000000..5b83b44 --- /dev/null +++ b/pyinstaller/maigret_standalone.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 +import asyncio + +import maigret + +if __name__ == "__main__": + asyncio.run(maigret.cli()) \ No newline at end of file diff --git a/pyinstaller/maigret_standalone.spec b/pyinstaller/maigret_standalone.spec new file mode 100644 index 0000000..a5341ef --- /dev/null +++ b/pyinstaller/maigret_standalone.spec @@ -0,0 +1,55 @@ +# -*- mode: python ; coding: utf-8 -*- +from PyInstaller.utils.hooks import collect_all + +datas = [] +binaries = [] +hiddenimports = [] + +full_import_modules = ['maigret', 'socid_extractor', 'arabic_reshaper', 'pyvis', 'reportlab'] + +for module in full_import_modules: + tmp_ret = collect_all(module) + datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2] + +hiddenimports += ['PySocks', 'beautifulsoup4', 'python-dateutil', + 'future-annotations', 'six', 'python-bidi', + 'typing-extensions', 'attrs', 'torrequest'] + +block_cipher = None + + +a = Analysis(['maigret_standalone.py'], + pathex=[], + binaries=binaries, + datas=datas, + hiddenimports=hiddenimports, + hookspath=[], + hooksconfig={}, + runtime_hooks=[], + excludes=[], + win_no_prefer_redirects=False, + win_private_assemblies=False, + cipher=block_cipher, + noarchive=False) + +pyz = PYZ(a.pure, a.zipped_data, + cipher=block_cipher) + +exe = EXE(pyz, + a.scripts, + a.binaries, + a.zipfiles, + a.datas, + [], + name='maigret_standalone', + debug=False, + bootloader_ignore_signals=False, + strip=False, + upx=True, + upx_exclude=[], + runtime_tmpdir=None, + console=True, + disable_windowed_traceback=False, + target_arch=None, + codesign_identity=None, + entitlements_file=None ) diff --git a/pyinstaller/requirements.txt b/pyinstaller/requirements.txt new file mode 100644 index 0000000..f03eae0 --- /dev/null +++ b/pyinstaller/requirements.txt @@ -0,0 +1,5 @@ +maigret @ https://github.com/soxoj/maigret/archive/refs/heads/main.zip +pefile==2019.4.18 +psutil==5.7.0 +pyinstaller @ https://github.com/pyinstaller/pyinstaller/archive/develop.zip +pywin32-ctypes==0.2.0 \ No newline at end of file