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/*
|
Cover/*
|
||||||
App
|
App
|
||||||
.venv
|
.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