|
name: Test and Build Python Package |
|
|
|
on: |
|
push: |
|
branches: |
|
- '**' |
|
- '!main' |
|
- '!master' |
|
pull_request: |
|
workflow_call: |
|
|
|
jobs: |
|
build-and-test: |
|
runs-on: ${{ matrix.runner }} |
|
strategy: |
|
fail-fast: false |
|
matrix: |
|
python-version: ["3.10", "3.11", "3.12"] |
|
runner: |
|
- ubuntu-latest |
|
- ubuntu-24.04-arm |
|
steps: |
|
- name: checkout babeldoc metadata |
|
uses: actions/checkout@v4 |
|
with: |
|
repository: funstory-ai/BabelDOC |
|
path: babeldoctemp1234567 |
|
token: ${{ secrets.GITHUB_TOKEN }} |
|
sparse-checkout: babeldoc/assets/embedding_assets_metadata.py |
|
- name: Cached Assets |
|
id: cache-assets |
|
uses: actions/[email protected] |
|
with: |
|
path: ~/.cache/babeldoc |
|
key: test-1-babeldoc-assets-${{ hashFiles('babeldoctemp1234567/babeldoc/assets/embedding_assets_metadata.py') }} |
|
- uses: actions/checkout@v4 |
|
- name: Setup uv with Python ${{ matrix.python-version }} |
|
uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 |
|
with: |
|
python-version: ${{ matrix.python-version }} |
|
enable-cache: true |
|
cache-dependency-glob: "pyproject.toml" |
|
- name: Install dependencies |
|
run: | |
|
uv sync |
|
|
|
- name: Test - Unit Test |
|
run: | |
|
uv run pytest . |
|
|
|
- name: Test - Translate a PDF file with plain text only |
|
run: uv run pdf2zh ./test/file/translate.cli.plain.text.pdf -o ./test/file |
|
|
|
- name: Test - Translate a PDF file figure |
|
run: uv run pdf2zh ./test/file/translate.cli.text.with.figure.pdf -o ./test/file |
|
|
|
|
|
|
|
|
|
|
|
- name: Test - Start GUI and exit |
|
run: timeout 10 uv run pdf2zh -i || code=$?; if [[ $code -ne 124 && $code -ne 0 ]]; then exit $code; fi |
|
|
|
- name: Build as a package |
|
run: uv build |
|
|
|
- name: Upload test results |
|
uses: actions/upload-artifact@v4 |
|
with: |
|
name: test-results-${{ matrix.python-version }}-${{ matrix.runner }} |
|
path: ./test/file/ |
|
|