name: Build Windows Executable on: push: branches: [ main, master, develop ] pull_request: branches: [ main, master, develop ] jobs: build-windows: runs-on: windows-latest timeout-minutes: 45 strategy: matrix: python-version: ['3.11'] steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} cache: 'pip' - name: Install dependencies run: | python -m pip install --upgrade pip setuptools wheel pip install python-barcode pillow reportlab kivy==2.2.1 pyinstaller==6.1.0 - name: Build executable with PyInstaller run: | pyinstaller label_printer_gui.py --onedir --windowed --name=LabelPrinter --distpath=./dist --workpath=./build --hidden-import=kivy --hidden-import=PIL --hidden-import=barcode --hidden-import=reportlab --hidden-import=print_label --hidden-import=print_label_pdf -y --noupx - name: Create single executable zip run: | cd dist 7z a -r LabelPrinter.zip LabelPrinter/ shell: powershell - name: Upload Windows executable as artifact uses: actions/upload-artifact@v4 with: name: LabelPrinter-Windows path: dist/LabelPrinter.zip retention-days: 30 - name: Create Release and Upload if: startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v1 with: files: dist/LabelPrinter.exe env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}