Stirling-PDF/.github/workflows
Ludy 886f9b379e
feat(docker-runtime): unified Debian-based images, dynamic path resolution & enhanced UNO/LibreOffice handling (#4880)
# Description of Changes

### What was changed

This PR introduces a major refinement to the Docker runtime, system path
resolution, conversion tooling, and integration logic across the
codebase. Key improvements include:

- Migration of **Dockerfile**, **Dockerfile.fat** to a unified
Debian-based environment.
- Introduction of **RuntimePathConfig** enhancements to dynamically
resolve:
  - `weasyprint`, `unoconvert`, `calibre`, `ocrmypdf`, `soffice`
  - Tesseract `tessdata` paths with Docker-aware defaults.
- Support for **UNO server (unoserver/unoconvert)** as primary document
converter with automatic fallback to `soffice`.
- Isolation of Python environments for WeasyPrint and UNO tooling.
- Updated controllers and services to correctly inject
`RuntimePathConfig`.
- Improved process execution logic in converters and OCR handling.
- Major updates to `init.sh` and `init-without-ocr.sh`:
  - Unified environment initialization
  - Proper UID/GID remapping
  - Safer permissions handling
  - Automatic Tesseract path detection
  - Reliable startup of headless LibreOffice + Xvfb + UNO server
- Full test suite updates:
  - Adaptation to new conversion paths
  - Mocking of UNO and LibreOffice commands
  - More robust Docker test logic
- Updated example docker-compose files referencing GHCR test images.
- Expanded configuration schema for new operations paths.

### Why the change was made

These changes address long-standing issues around:

- Inconsistent or missing binary paths between image variants.
- Reduced reliability of document conversions (UNO vs. soffice).
- Lack of uniform runtime initialization across Docker images.
- Repetitive environment setup logic split across multiple scripts.
- Fragile test scenarios tied to Alpine-based images.

Switching to a unified Debian-based runtime significantly improves:

- Compatibility with LibreOffice, Calibre, WebEngine and graphics stack.
- UNO stability for document conversions.
- Tesseract deterministic behavior.
- Debuggability and reliability of CI/CD Docker-based tests.

The improvements to `RuntimePathConfig` ensure all system binaries are
fully configurable and correctly detected at runtime.

---

## Checklist

### General

- [x] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [x] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md)
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md)
(if applicable)
- [x] I have performed a self-review of my own code
- [x] My changes generate no new warnings

### Documentation

- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### Translations (if applicable)

- [ ] I ran
[`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md)

### UI Changes (if applicable)

- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)

### Testing (if applicable)

- [x] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing)
for more details.
2025-11-24 23:07:54 +00:00
..
ai_pr_title_review.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00
auto-labelerV2.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00
build.yml feat(docker-runtime): unified Debian-based images, dynamic path resolution & enhanced UNO/LibreOffice handling (#4880) 2025-11-24 23:07:54 +00:00
check_properties.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00
codeql.yml-disabled Bump: Harden Runner from v2.10.2 to v2.10.3 (#2686) 2025-01-13 22:26:05 +00:00
dependency-review.yml build(deps): bump actions/dependency-review-action from 4.8.1 to 4.8.2 (#4932) 2025-11-17 23:49:43 +00:00
licenses-update.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00
manage-label.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00
multiOSReleases.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00
PR-Demo-cleanup.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00
PR-Demo-Comment-with-react.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00
pre_commit.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00
push-docker.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00
releaseArtifacts.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00
scorecards.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00
stale.yml build(deps): bump step-security/harden-runner from 2.13.1 to 2.13.2 (#4853) 2025-11-10 15:03:46 +00:00
swagger.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00
sync_files.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00
testdriver.yml build(deps): bump actions/checkout from 5.0.0 to 5.0.1 (#4931) 2025-11-17 23:49:22 +00:00