diff --git a/.github/workflows/compile-binary.yml b/.github/workflows/compile-binary.yml new file mode 100644 index 0000000..434b4cb --- /dev/null +++ b/.github/workflows/compile-binary.yml @@ -0,0 +1,77 @@ +name: Compile the program into binary + +on: + workflow_dispatch: + +permissions: + contents: read + +jobs: + linux: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: '3.10' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pycryptodome javaobj-py3 ordered-set zstandard nuitka + pip install . + - name: Build binary with Nuitka + run: | + python -m nuitka --onefile --follow-imports Whatsapp_Chat_Exporter/__main__.py + cp __main__.bin wtsexporter_linux_x64 + - uses: actions/upload-artifact@v3 + with: + name: binary-linux + path: | + ./wtsexporter_linux_x64 + + windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: '3.10' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pycryptodome javaobj-py3 ordered-set zstandard nuitka + pip install . + - name: Build binary with Nuitka + run: | + python -m nuitka --onefile --assume-yes-for-downloads --follow-imports Whatsapp_Chat_Exporter\__main__.py + copy __main__.exe wtsexporter_x64.exe + - uses: actions/upload-artifact@v3 + with: + name: binary-windows + path: | + .\wtsexporter_x64.exe + + macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: '3.10' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install pycryptodome javaobj-py3 ordered-set zstandard nuitka + pip install . + - name: Build binary with Nuitka + run: | + python -m nuitka --onefile --follow-imports Whatsapp_Chat_Exporter/__main__.py + cp __main__.bin wtsexporter_macos_x64 + - uses: actions/upload-artifact@v3 + with: + name: binary-macos + path: | + ./wtsexporter_macos_x64 diff --git a/Whatsapp_Chat_Exporter/__main__.py b/Whatsapp_Chat_Exporter/__main__.py index b438fe2..7e51333 100644 --- a/Whatsapp_Chat_Exporter/__main__.py +++ b/Whatsapp_Chat_Exporter/__main__.py @@ -226,3 +226,7 @@ def main(): print() print("Everything is done!") + + +if __name__ == "__main__": + main()