Files
pdf_oralia_vibe/.github/workflows/build-windows.yml
Bertrand Benjamin a90d1c4f64 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>
2026-07-19 17:21:27 +02:00

56 lines
1.4 KiB
YAML

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