# Build Windows Executable # Triggered on version tags (e.g., v1.0.0) name: Build Windows EXE on: push: tags: - '*' workflow_dispatch: # Allow manual trigger jobs: build: runs-on: windows-latest permissions: contents: write steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.10' cache: 'pip' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install pyinstaller - name: Build executable run: | pyinstaller --noconfirm --clean --onefile ^ --name "PocketTTS-Server" ^ --add-data "static;static" ^ --add-data "templates;templates" ^ --add-data "voices;voices" ^ --add-data "app;app" ^ --collect-all "pocket_tts" ^ --hidden-import "waitress" ^ --hidden-import "engineio.async_drivers.threading" ^ server.py shell: cmd - name: Create release package run: | mkdir release copy dist\PocketTTS-Server.exe release\ copy run_pocket_tts_server_exe.bat release\ copy README.md release\ copy LICENSE release\ shell: cmd - name: Upload artifact uses: actions/upload-artifact@v4 with: name: PocketTTS-Server-Windows path: release/ retention-days: 30 - name: Create GitHub Release if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: files: | release/PocketTTS-Server.exe release/run_pocket_tts_server_exe.bat release/README.md draft: false prerelease: false generate_release_notes: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}