mirror of
https://github.com/docling-project/docling-core.git
synced 2026-05-17 13:10:44 +00:00
* use new pyproject.toml format with uv Signed-off-by: Michele Dolfi <dol@zurich.ibm.com> * update ci/cd scripts Signed-off-by: Michele Dolfi <dol@zurich.ibm.com> * update MD files Signed-off-by: Michele Dolfi <dol@zurich.ibm.com> * build without pre-commit cache Signed-off-by: Michele Dolfi <dol@zurich.ibm.com> * run pre-commit from uv Signed-off-by: Michele Dolfi <dol@zurich.ibm.com> * small changes Signed-off-by: Michele Dolfi <dol@zurich.ibm.com> * add uv package install Signed-off-by: Michele Dolfi <dol@zurich.ibm.com> * Apply suggestions from code review Co-authored-by: Cesar Berrospi Ramis <75900930+ceberam@users.noreply.github.com> Signed-off-by: Michele Dolfi <97102151+dolfim-ibm@users.noreply.github.com> * docs: update README Signed-off-by: Panos Vagenas <pva@zurich.ibm.com> --------- Signed-off-by: Michele Dolfi <dol@zurich.ibm.com> Signed-off-by: Michele Dolfi <97102151+dolfim-ibm@users.noreply.github.com> Signed-off-by: Panos Vagenas <pva@zurich.ibm.com> Co-authored-by: Cesar Berrospi Ramis <75900930+ceberam@users.noreply.github.com> Co-authored-by: Panos Vagenas <pva@zurich.ibm.com>
99 lines
3.1 KiB
YAML
99 lines
3.1 KiB
YAML
on:
|
|
workflow_call:
|
|
inputs:
|
|
push_coverage:
|
|
type: boolean
|
|
description: "If true, the coverage results are pushed to codecov.io."
|
|
default: true
|
|
secrets:
|
|
CODECOV_TOKEN:
|
|
required: false
|
|
|
|
env:
|
|
HF_HUB_DOWNLOAD_TIMEOUT: "60"
|
|
HF_HUB_ETAG_TIMEOUT: "60"
|
|
|
|
jobs:
|
|
run-checks:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Cache Hugging Face models
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.cache/huggingface
|
|
key: huggingface-cache-py${{ matrix.python-version }}
|
|
- name: Install uv and set the python version
|
|
uses: astral-sh/setup-uv@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
enable-cache: true
|
|
- name: pre-commit cache key
|
|
run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> "$GITHUB_ENV"
|
|
- uses: actions/cache@v4
|
|
with:
|
|
path: ~/.cache/pre-commit
|
|
key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
|
|
- name: Install dependencies
|
|
run: uv sync --frozen --all-extras
|
|
- name: Check style and run tests
|
|
run: pre-commit run --all-files
|
|
- name: Upload coverage to Codecov
|
|
if: inputs.push_coverage
|
|
uses: codecov/codecov-action@v5
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
files: ./coverage.xml
|
|
|
|
build-package:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
python-version: ['3.12']
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install uv and set the python version
|
|
uses: astral-sh/setup-uv@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
enable-cache: true
|
|
- name: Install dependencies
|
|
run: uv sync --all-extras
|
|
- name: Build package
|
|
run: uv build
|
|
- name: Check content of wheel
|
|
run: unzip -l dist/*.whl
|
|
- name: Store the distribution packages
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: python-package-distributions
|
|
path: dist/
|
|
|
|
test-package:
|
|
needs:
|
|
- build-package
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
python-version: ['3.12']
|
|
steps:
|
|
- name: Download all the dists
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: python-package-distributions
|
|
path: dist/
|
|
- name: Install uv and set the python version
|
|
uses: astral-sh/setup-uv@v5
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
enable-cache: true
|
|
- name: Install package
|
|
run: uv pip install dist/*.whl
|
|
- name: Load the DoclingDocument package
|
|
run: python -c 'from docling_core.types.doc import DoclingDocument'
|
|
- name: Check if package data is present
|
|
run: python -c 'from importlib import resources; from pathlib import Path; p=Path(resources.files("docling_core").joinpath("resources/schemas/doc/DOC.json")); assert p.exists()'
|