feat: 新增 OCRmyPDF 轉換引擎 (v0.1.14)

## 新功能
- OCRmyPDF 轉換引擎:將掃描版 PDF 轉換為可搜尋 PDF
  - 支援 7 種語言:en, zh-TW, zh, ja, ko, de, fr
  - 與 PDFMathTranslate 風格一致的 UI 格式 (pdf-<lang>)
  - 自動偵測頁面方向並旋轉
  - 自動校正傾斜
  - 跳過已有文字層的頁面
  - 詳細的 5 階段處理進度輸出

## 建置
- Dockerfile:安裝 ocrmypdf 與 Tesseract OCR 語言包

## 文件
- 更新 OCR 功能文件
- 文件目錄結構改為中文名稱

## 測試
- 修復 BabelDOC 和 PDFMathTranslate 測試的 OCR mock
- 所有 345 個測試通過
This commit is contained in:
Your Name 2026-01-23 16:28:33 +08:00
parent f24eec070c
commit a06df23b1d
53 changed files with 1427 additions and 675 deletions

148
docs/測試/CI-CD.md Normal file
View file

@ -0,0 +1,148 @@
# CI/CD
本文件說明 ConvertX-CN 的持續整合與持續部署設定。
---
## GitHub Actions
### 測試工作流
每次 Push 和 Pull Request 自動執行:
```yaml
# .github/workflows/test.yml
name: Test
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v1
- name: Install dependencies
run: bun install
- name: Run lint
run: bun run lint
- name: Run tests
run: bun run test
```
### Docker 建構工作流
標籤推送時自動建構並發布 Docker 映像:
```yaml
# .github/workflows/docker.yml
name: Docker Build
on:
push:
tags:
- "v*"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
push: true
tags: |
convertx/convertx-cn:latest
convertx/convertx-cn:${{ github.ref_name }}
```
---
## 工作流程
### 開發流程
```
1. 開發者提交 PR
2. 自動執行測試
3. 通過 Review
4. 合併到 main
```
### 發布流程
```
1. 建立版本標籤 (v0.1.x)
2. 自動建構 Docker 映像
3. 推送到 Docker Hub
4. 更新 latest 標籤
```
---
## 環境變數
### 測試環境
| 變數 | 說明 |
| ---------- | ----------- |
| `CI` | CI 環境標記 |
| `NODE_ENV` | `test` |
### Docker 建構
| 變數 | 說明 |
| ----------------- | ---------------- |
| `DOCKER_USERNAME` | Docker Hub 帳號 |
| `DOCKER_TOKEN` | Docker Hub Token |
---
## 本地模擬 CI
### 執行完整檢查
```bash
# 模擬 CI 流程
bun run lint
bun run typecheck
bun run test
bun run build
```
### 建構 Docker 映像
```bash
docker build -t convertx-cn-test .
```
---
## 相關文件
- [測試策略](測試策略.md)
- [E2E 測試](E2E測試.md)
- [貢獻指南](../開發指南/貢獻指南.md)