feat: mode application de bureau + packaging Windows autonome
Permet de distribuer l'application en executable Windows double-clic, sans Python/Node/terminal pour l'utilisateur final. - `desktop.py` : demarre le serveur sur un port libre dans un thread et ouvre une fenetre native (pywebview). `PLESNA_DEBUG=1` active les DevTools. Commande `plesna-gerance desktop` (import paresseux). - `paths.py` : resolution centralisee des chemins selon le contexte (dev, executable PyInstaller, surcharge par variables d'env). Les donnees vont dans un dossier utilisateur inscriptible (%APPDATA%), les ressources dans le bundle. connection.py/storage.py utilisent `get_data_dir()`, app.py `resource_path()`. - app.py : type MIME `.mjs` force (modules ES / worker PDF.js sous Windows). - Groupes de deps optionnels desktop / desktop-linux / build. - packaging/ : spec PyInstaller, build_windows.ps1, installeur Inno Setup. Workflow GitHub build-windows.yml (runner Windows). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
55
.github/workflows/build-windows.yml
vendored
Normal file
55
.github/workflows/build-windows.yml
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
name: Build Windows
|
||||
|
||||
# Construit l'exécutable autonome et l'installeur sur un runner Windows.
|
||||
# Déclenchable manuellement (onglet Actions) ou en poussant un tag v*.
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- "v*"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "22"
|
||||
|
||||
- name: Build frontend
|
||||
working-directory: frontend
|
||||
run: |
|
||||
npm ci
|
||||
npm run build
|
||||
|
||||
- name: Setup Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.12"
|
||||
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
|
||||
- name: Install dependencies (desktop + build)
|
||||
run: uv sync --group desktop --group build
|
||||
|
||||
- name: Package with PyInstaller
|
||||
run: uv run pyinstaller packaging/plesna_gerance.spec --noconfirm --clean
|
||||
|
||||
- name: Install Inno Setup
|
||||
run: choco install innosetup --no-progress -y
|
||||
|
||||
- name: Build installer
|
||||
run: '& "${env:ProgramFiles(x86)}\Inno Setup 6\ISCC.exe" packaging\installer.iss'
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: PlesnaGerance-windows
|
||||
path: |
|
||||
dist/PlesnaGerance.exe
|
||||
dist/PlesnaGerance-Setup.exe
|
||||
if-no-files-found: error
|
||||
Reference in New Issue
Block a user