Génération PDF asynchrone : jobs avec polling + progression
All checks were successful
Deploy / deploy (push) Successful in 20s

- Nouveau système de jobs : POST /jobs (async), GET /jobs/{id} (status), GET /jobs/{id}/result (PDF), DELETE /jobs/{id}
- worker.php spawné en arrière-plan via nohup, lit la sortie pagedjs-cli ligne par ligne via proc_open et écrit la progression dans tmp/job_{id}.status.json
- Migration de pagedjs-cli en install local (node_modules) pour persister le patch protocolTimeout via patch-package
- CI : déploie package.json, worker.php, patches/, et lance npm install (qui réapplique les patches via postinstall)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
isUnknown 2026-05-04 09:37:00 +02:00
parent a005c982bd
commit 0b954ed494
10 changed files with 506 additions and 6 deletions

View file

@ -51,6 +51,10 @@ jobs:
rsync_deploy config/ "config/"
rsync_deploy src/ "src/"
rsync_deploy public/ "public/"
rsync_deploy patches/ "patches/"
rsync -az --no-perms --no-owner --no-group -e 'ssh -i ~/.ssh/id_ed25519' \
package.json worker.php \
${{ vars.USERNAME }}@${{ vars.HOST }}:/tmp/web2print-deploy/
- name: Apply on server
run: |
@ -62,6 +66,10 @@ jobs:
sudo cp -r /tmp/web2print-deploy/config/. \$DEPLOY_PATH/config/
sudo cp -r /tmp/web2print-deploy/src/. \$DEPLOY_PATH/src/
sudo cp -r /tmp/web2print-deploy/public/. \$DEPLOY_PATH/public/
sudo mkdir -p \$DEPLOY_PATH/patches
sudo cp -r /tmp/web2print-deploy/patches/. \$DEPLOY_PATH/patches/
sudo cp /tmp/web2print-deploy/package.json \$DEPLOY_PATH/package.json
sudo cp /tmp/web2print-deploy/worker.php \$DEPLOY_PATH/worker.php
echo 'Configuration des permissions...'
sudo chown -R www-data:www-data \$DEPLOY_PATH
@ -70,6 +78,9 @@ jobs:
sudo chmod -R 775 \$DEPLOY_PATH/tmp
sudo chmod 640 \$DEPLOY_PATH/config/config.php
echo 'Installation des dépendances npm + application des patches...'
cd \$DEPLOY_PATH && sudo -u www-data npm install --omit=optional 2>&1 | tail -5
echo 'Nettoyage...'
sudo rm -rf /tmp/web2print-deploy