name: Build & Release on: workflow_dispatch: inputs: make_release: description: 'Create Github Release?' type: boolean required: true default: false version: description: "Release version tag (e.g. v1.0.0)" required: false default: "v1.0.0" permissions: contents: write jobs: build: runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Python uses: actions/setup-python@v5 with: python-version: "3.12" cache: "pip" - name: Install dependencies run: pip install -r requirements.txt - name: Install pyinstaller run: pip install "pyinstaller==6.13.0" - name: Build EXE with PyInstaller run: pyinstaller packaging/windows.spec --noconfirm - name: Upload artifact uses: actions/upload-artifact@v4 with: name: TgWsProxy path: | dist/TgWsProxy.exe build-win7: runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Python 3.8 (last version supporting Win7) uses: actions/setup-python@v5 with: python-version: "3.8" cache: "pip" - name: Install dependencies (Win7-compatible) run: pip install -r requirements-win7.txt - name: Install pyinstaller run: pip install "pyinstaller==5.13.2" - name: Build EXE with PyInstaller (Win7) run: pyinstaller packaging/windows.spec --noconfirm - name: Rename artifact run: mv dist/TgWsProxy.exe dist/TgWsProxy-win7.exe - name: Upload artifact uses: actions/upload-artifact@v4 with: name: TgWsProxy-win7 path: dist/TgWsProxy-win7.exe release: needs: [build, build-win7] runs-on: ubuntu-latest if: ${{ github.event.inputs.make_release == 'true' }} steps: - name: Download main build uses: actions/download-artifact@v4 with: name: TgWsProxy path: dist - name: Download Win7 build uses: actions/download-artifact@v4 with: name: TgWsProxy-win7 path: dist - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: tag_name: ${{ github.event.inputs.version }} name: "TG WS Proxy ${{ github.event.inputs.version }}" body: | ## TG WS Proxy ${{ github.event.inputs.version }} files: | dist/TgWsProxy.exe dist/TgWsProxy-win7.exe draft: false prerelease: false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}