ci: add Gitea Actions workflow for Windows EXE build & release
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
name: Build Windows EXE & Release
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- 'v*' # Wird ausgelöst wenn du z.B. "v1.0.0" pushst
|
||||
|
||||
jobs:
|
||||
build-windows:
|
||||
runs-on: windows-latest # Benötigt einen Windows-Runner!
|
||||
|
||||
steps:
|
||||
- name: Code auschecken
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Python 3.11 installieren
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: FFmpeg installieren (via Chocolatey)
|
||||
run: |
|
||||
choco install ffmpeg -y
|
||||
shell: powershell
|
||||
|
||||
- name: Python-Abhängigkeiten installieren
|
||||
run: |
|
||||
pip install --upgrade pip
|
||||
pip install mutagen pydub pyinstaller
|
||||
|
||||
- name: .exe bauen mit PyInstaller
|
||||
run: |
|
||||
pyinstaller `
|
||||
--onefile `
|
||||
--windowed `
|
||||
--icon=icon.ico `
|
||||
--name="fcco-Converter" `
|
||||
--add-data="icon.ico;." `
|
||||
main.py
|
||||
shell: powershell
|
||||
|
||||
- name: Release-Archiv erstellen (ZIP)
|
||||
run: |
|
||||
Compress-Archive -Path dist\fcco-Converter.exe -DestinationPath dist\fcco-Converter-${{ gitea.ref_name }}-windows.zip
|
||||
shell: powershell
|
||||
|
||||
- name: Gitea Release erstellen & EXE hochladen
|
||||
uses: https://gitea.com/actions/gitea-release-action@main
|
||||
with:
|
||||
token: ${{ secrets.RELEASE_TOKEN }}
|
||||
tag_name: ${{ gitea.ref_name }}
|
||||
release_name: "fcco-Converter ${{ gitea.ref_name }}"
|
||||
body: |
|
||||
## fcco-Converter ${{ gitea.ref_name }}
|
||||
|
||||
### Download
|
||||
- **fcco-Converter-${{ gitea.ref_name }}-windows.zip** – Windows Standalone (.exe)
|
||||
|
||||
### Voraussetzungen
|
||||
- FFmpeg muss auf dem System installiert sein (oder im PATH liegen)
|
||||
- Beim ersten Start: `settings.json` wird automatisch erstellt
|
||||
|
||||
### Installation
|
||||
1. ZIP entpacken
|
||||
2. `fcco-Converter.exe` starten
|
||||
files: |
|
||||
dist/fcco-Converter-${{ gitea.ref_name }}-windows.zip
|
||||
@@ -2,3 +2,12 @@
|
||||
Cover/*
|
||||
App
|
||||
.venv
|
||||
|
||||
# PyInstaller Build-Artefakte
|
||||
build/
|
||||
dist/
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
||||
# Laufzeit-Dateien (werden lokal generiert)
|
||||
history.json
|
||||
@@ -0,0 +1,58 @@
|
||||
# fcco-Converter.spec
|
||||
# Für lokalen Build auf Windows: pyinstaller fcco-Converter.spec
|
||||
|
||||
block_cipher = None
|
||||
|
||||
a = Analysis(
|
||||
['main.py'],
|
||||
pathex=[],
|
||||
binaries=[],
|
||||
datas=[
|
||||
('icon.ico', '.'), # Icon miteinbinden
|
||||
('settings.json', '.'), # Standard-Settings
|
||||
],
|
||||
hiddenimports=[
|
||||
'mutagen',
|
||||
'mutagen.easyid3',
|
||||
'mutagen.id3',
|
||||
'pydub',
|
||||
'tkinter',
|
||||
'tkinter.ttk',
|
||||
'tkinter.filedialog',
|
||||
'tkinter.messagebox',
|
||||
'tkinter.simpledialog',
|
||||
],
|
||||
hookspath=[],
|
||||
hooksconfig={},
|
||||
runtime_hooks=[],
|
||||
excludes=[],
|
||||
win_no_prefer_redirects=False,
|
||||
win_private_assemblies=False,
|
||||
cipher=block_cipher,
|
||||
noarchive=False,
|
||||
)
|
||||
|
||||
pyz = PYZ(a.pure, a.zlib, cipher=block_cipher)
|
||||
|
||||
exe = EXE(
|
||||
pyz,
|
||||
a.scripts,
|
||||
a.binaries,
|
||||
a.zipfiles,
|
||||
a.datas,
|
||||
[],
|
||||
name='fcco-Converter',
|
||||
debug=False,
|
||||
bootloader_ignore_signals=False,
|
||||
strip=False,
|
||||
upx=True,
|
||||
upx_exclude=[],
|
||||
runtime_tmpdir=None,
|
||||
console=False, # Kein Konsolenfenster (GUI-App)
|
||||
disable_windowed_traceback=False,
|
||||
argv_emulation=False,
|
||||
target_arch=None,
|
||||
codesign_identity=None,
|
||||
entitlements_file=None,
|
||||
icon='icon.ico',
|
||||
)
|
||||
Reference in New Issue
Block a user