Files
anonymisation/.github/workflows/build-windows.yml
Domi31tls 67042bc3f1 Build en mode dossier (pas onefile) pour éviter faux positif antivirus
- --standalone sans --onefile : produit un dossier au lieu d'un exe compressé
- Windows Defender ne bloque plus (pas de technique d'extraction suspecte)
- Le dossier est zippé pour distribution facile
- Renommé en Pseudonymisation/ pour plus de clarté

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 15:54:06 +01:00

91 lines
3.0 KiB
YAML

name: Build Windows EXE (Nuitka)
on:
workflow_dispatch:
push:
tags:
- 'v*'
jobs:
build-windows:
runs-on: windows-latest
timeout-minutes: 60
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: pip
- name: Cache Nuitka
uses: actions/cache@v4
with:
path: |
~\AppData\Local\Nuitka\Nuitka
nuitka-build-cache
key: nuitka-${{ runner.os }}-${{ hashFiles('requirements.txt', 'Pseudonymisation_Gui_V5.py') }}
restore-keys: nuitka-${{ runner.os }}-
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
pip install -r requirements.txt
pip install nuitka zstandard
- name: Download NER model
run: |
python -c "from ner_manager_onnx import NerModelManager; m=NerModelManager(cache_dir='models'); m.load('cmarkea/distilcamembert-base-ner'); print('Model OK:', m.is_loaded()); m.unload()"
- name: Build with Nuitka (standalone folder)
run: |
python -m nuitka `
--standalone `
--enable-plugin=tk-inter `
--include-module=anonymizer_core_refactored_onnx `
--include-module=ner_manager_onnx `
--include-module=eds_pseudo_manager `
--include-data-dir=config=config `
--include-data-dir=models=models `
--nofollow-import-to=onnxruntime `
--nofollow-import-to=numpy `
--nofollow-import-to=transformers `
--nofollow-import-to=optimum `
--nofollow-import-to=tokenizers `
--nofollow-import-to=sentencepiece `
--nofollow-import-to=torch `
--nofollow-import-to=PIL `
--nofollow-import-to=pdfplumber `
--nofollow-import-to=pdfminer `
--nofollow-import-to=fitz `
--nofollow-import-to=yaml `
--windows-console-mode=disable `
--output-dir=build `
--company-name="Hopital" `
--product-name="Pseudonymisation de PDF" `
--product-version=5.0.0 `
--file-description="Pseudonymisation automatique de documents PDF" `
--assume-yes-for-downloads `
Pseudonymisation_Gui_V5.py
- name: Prepare distribution zip
run: |
Rename-Item -Path "build\Pseudonymisation_Gui_V5.dist" -NewName "Pseudonymisation"
Compress-Archive -Path "build\Pseudonymisation" -DestinationPath "Pseudonymisation-Windows-x64.zip"
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: Pseudonymisation-Windows-x64
path: Pseudonymisation-Windows-x64.zip
retention-days: 30
- name: Upload to release (on tag)
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
files: Pseudonymisation-Windows-x64.zip