From 72c92bd8232cf689ce6b9aa7cd6d0efcfc8361da Mon Sep 17 00:00:00 2001 From: Yan4ik000 Date: Wed, 3 Jun 2026 21:17:35 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=81=D0=B1=D0=BE=D1=80=D0=BA=D0=B0=20Windows?= =?UTF-8?q?=20ARM64=20=D0=B2=20Build=20&=20Release=20workflow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 72 +++++++++++++++++++++++++++++++++---- docs/README.md | 6 ++-- docs/README.windows.md | 3 +- 3 files changed, 72 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 631c65e4..ee1fcc36 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,7 +17,7 @@ permissions: contents: write jobs: - build-windows: + build-windows-x64: runs-on: windows-latest steps: - name: Checkout @@ -68,13 +68,72 @@ jobs: " - name: Rename artifact - run: mv dist/TgWsProxy.exe dist/TgWsProxy_windows.exe + run: mv dist/TgWsProxy.exe dist/TgWsProxy_windows_x64.exe - name: Upload artifact uses: actions/upload-artifact@v7 with: - name: TgWsProxy - path: dist/TgWsProxy_windows.exe + name: TgWsProxy-windows-x64 + path: dist/TgWsProxy_windows_x64.exe + + build-windows-arm64: + runs-on: windows-11-arm + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Setup Python + uses: actions/setup-python@v6 + with: + python-version: "3.11" + architecture: arm64 + cache: "pip" + + - name: Install ARM64 OpenSSL + shell: pwsh + run: | + vcpkg install openssl:arm64-windows-static + $opensslDir = "$env:VCPKG_INSTALLATION_ROOT\installed\arm64-windows-static" + "OPENSSL_DIR=$opensslDir" >> $env:GITHUB_ENV + "OPENSSL_STATIC=1" >> $env:GITHUB_ENV + "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" >> $env:GITHUB_ENV + + - name: Install dependencies & pyinstaller + run: pip install . "pyinstaller==6.13.0" + + - name: Build EXE with PyInstaller + run: pyinstaller packaging/windows.spec --noconfirm + + - name: Strip Rich PE header + shell: bash + run: | + python -c " + import struct, pathlib + exe = pathlib.Path('dist/TgWsProxy.exe') + data = bytearray(exe.read_bytes()) + rich = data.find(b'Rich') + if rich == -1: + print('Rich header not found, skipping') + raise SystemExit(0) + ck = struct.unpack_from(' Не можете скачать? > Добавьте `185.199.109.133 release-assets.githubusercontent.com` в hosts или воспользуйтесь зеркалом: https://sourceforge.net/projects/tg-ws-proxy.mirror/files/ files: | - dist/TgWsProxy_windows.exe + dist/TgWsProxy_windows_x64.exe + dist/TgWsProxy_windows_arm64.exe dist/TgWsProxy_windows_7_64bit.exe dist/TgWsProxy_windows_7_32bit.exe dist/TgWsProxy_macos_universal.dmg diff --git a/docs/README.md b/docs/README.md index 751b9bf3..ebfaab08 100644 --- a/docs/README.md +++ b/docs/README.md @@ -55,7 +55,8 @@ Перейдите на [страницу релизов](https://github.com/Flowseal/tg-ws-proxy/releases) и скачайте: -- `TgWsProxy_windows.exe` (Windows 10+) +- `TgWsProxy_windows_x64.exe` (Windows 10+ x64) +- `TgWsProxy_windows_arm64.exe` (Windows 10+ ARM64) - `TgWsProxy_windows_7_64bit.exe` (Windows 7 x64) - `TgWsProxy_windows_7_32bit.exe` (Windows 7 x32) @@ -116,7 +117,8 @@ Telegram Desktop → MTProto Proxy (127.0.0.1:1443) → WebSocket → Telegram D Минимально поддерживаемые версии ОС для текущих бинарных сборок: -- Windows 10+ для `TgWsProxy_windows.exe` +- Windows 10+ x64 для `TgWsProxy_windows_x64.exe` +- Windows 10+ ARM64 для `TgWsProxy_windows_arm64.exe` - Windows 7 (x64) для `TgWsProxy_windows_7_64bit.exe` - Windows 7 (x32) для `TgWsProxy_windows_7_32bit.exe` - Intel macOS 10.15+ diff --git a/docs/README.windows.md b/docs/README.windows.md index c7bee170..b2731a02 100644 --- a/docs/README.windows.md +++ b/docs/README.windows.md @@ -2,7 +2,8 @@ Перейдите на [страницу релизов](https://github.com/Flowseal/tg-ws-proxy/releases) и скачайте: -- `TgWsProxy_windows.exe` (Windows 10+) +- `TgWsProxy_windows_x64.exe` (Windows 10+ x64) +- `TgWsProxy_windows_arm64.exe` (Windows 10+ ARM64) - `TgWsProxy_windows_7_64bit.exe` (Windows 7 x64) - `TgWsProxy_windows_7_32bit.exe` (Windows 7 x32) From b3cf74319f9a129d28c00b31d80b897d74442f5b Mon Sep 17 00:00:00 2001 From: Yan4ik000 Date: Fri, 5 Jun 2026 14:45:30 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=BA=D1=8D=D1=88=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20'cryptography'=20=D0=B2=20build=20workflow?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=B1=D0=BE=D0=BB=D0=B5=D0=B5=20=D0=B1?= =?UTF-8?q?=D1=8B=D1=81=D1=82=D1=80=D1=8B=D1=85=20=D0=B1=D1=83=D0=B4=D1=83?= =?UTF-8?q?=D1=89=D0=B8=D1=85=20=D0=B1=D0=B8=D0=BB=D0=B4=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ee1fcc36..c7f2f43c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -78,6 +78,9 @@ jobs: build-windows-arm64: runs-on: windows-11-arm + env: + CRYPTOGRAPHY_VERSION: "46.0.5" + ARM64_WHEELHOUSE: wheelhouse-arm64 steps: - name: Checkout uses: actions/checkout@v6 @@ -89,7 +92,15 @@ jobs: architecture: arm64 cache: "pip" + - name: Restore ARM64 cryptography wheel + id: cryptography-wheel-cache + uses: actions/cache@v4 + with: + path: ${{ env.ARM64_WHEELHOUSE }} + key: windows-arm64-py311-cryptography-${{ env.CRYPTOGRAPHY_VERSION }}-${{ hashFiles('pyproject.toml', '.github/workflows/build.yml') }} + - name: Install ARM64 OpenSSL + if: steps.cryptography-wheel-cache.outputs.cache-hit != 'true' shell: pwsh run: | vcpkg install openssl:arm64-windows-static @@ -98,8 +109,14 @@ jobs: "OPENSSL_STATIC=1" >> $env:GITHUB_ENV "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" >> $env:GITHUB_ENV + - name: Build ARM64 cryptography wheel + if: steps.cryptography-wheel-cache.outputs.cache-hit != 'true' + run: | + mkdir $env:ARM64_WHEELHOUSE + pip wheel --no-deps --wheel-dir $env:ARM64_WHEELHOUSE "cryptography==$env:CRYPTOGRAPHY_VERSION" + - name: Install dependencies & pyinstaller - run: pip install . "pyinstaller==6.13.0" + run: pip install --find-links $env:ARM64_WHEELHOUSE . "pyinstaller==6.13.0" - name: Build EXE with PyInstaller run: pyinstaller packaging/windows.spec --noconfirm