From 172a24a72143172b26d5c98fedce0166d45a2ec7 Mon Sep 17 00:00:00 2001 From: Wu Clan Date: Wed, 29 Oct 2025 15:30:51 +0800 Subject: [PATCH 1/4] Fix the docs ci and update uv source --- .github/workflows/docs.yml | 16 ++++-- .github/workflows/lint.yml | 7 ++- .github/workflows/test.yml | 10 ++-- pyproject.toml | 10 ++-- requirements.txt | 106 +++---------------------------------- uv.lock | 16 +++--- 6 files changed, 42 insertions(+), 123 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 3ca8266..d7ecc31 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,10 +1,14 @@ name: docs + on: push: branches: - master + pull_request: + permissions: contents: write + jobs: deploy: runs-on: ubuntu-latest @@ -15,18 +19,24 @@ jobs: run: | git config user.name github-actions[bot] git config user.email 41898282+github-actions[bot]@users.noreply.github.com - - uses: actions/setup-python@v5 + + - name: Install uv + uses: astral-sh/setup-uv@v6 with: - python-version: 3.x + python-version: 3.14 + - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + - uses: actions/cache@v4 with: key: mkdocs-material-${{ env.cache_id }} path: .cache restore-keys: | mkdocs-material- + - run: sudo apt-get install pngquant - - run: pip install -r $GITHUB_WORKSPACE/requirements_docs.txt + - run: uv sync --group docs - run: mkdocs gh-deploy --force + env: GH_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index da253f1..b13f580 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,10 +18,9 @@ jobs: - uses: actions/checkout@v4 - name: Install uv - uses: astral-sh/setup-uv@v3 - - - name: Set up Python ${{ matrix.python-version }} - run: uv python install ${{ matrix.python-version }} + uses: astral-sh/setup-uv@v6 + with: + python-version: ${{ matrix.python-version }} - name: Install dependencies run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index da5212f..dfcbf97 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,15 +18,13 @@ jobs: - uses: actions/checkout@v4 - name: Install uv - uses: astral-sh/setup-uv@v3 - - - name: Set up Python ${{ matrix.python-version }} - run: uv python install ${{ matrix.python-version }} + uses: astral-sh/setup-uv@v6 + with: + python-version: ${{ matrix.python-version }} - name: Install dependencies run: | - uv venv - uv pip install -r requirements.txt + uv sync - name: Run test run: uv run pytest diff --git a/pyproject.toml b/pyproject.toml index d9280a2..1889499 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,17 +29,19 @@ repository = "https://github.com/fastapi-practices/sqlalchemy-crud-plus" [dependency-groups] dev = [ "aiosqlite>=0.21.0", - "click==8.2.1", - "mkdocs-material>=9.6.22", - "mkdocstrings[python]>=0.30.0", "pytest>=8.4.0", "pytest-asyncio>=1.2.0", - "ruff>=0.14.0", "ty>=0.0.1a23", ] lint = [ "pre-commit>=4.3.0", ] +docs = [ + "click==8.2.1", + "mkdocs-material>=9.6.22", + "mkdocstrings[python]>=0.30.0", + "ruff>=0.14.0", +] [tool.uv] python-downloads = "manual" diff --git a/requirements.txt b/requirements.txt index 90a8fe4..3595291 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,99 +4,30 @@ aiosqlite==0.21.0 annotated-types==0.7.0 # via pydantic -babel==2.17.0 - # via mkdocs-material backports-asyncio-runner==1.2.0 ; python_full_version < '3.11' # via pytest-asyncio -backrefs==5.9 - # via mkdocs-material -certifi==2025.10.5 - # via requests cfgv==3.4.0 # via pre-commit -charset-normalizer==3.4.4 - # via requests -click==8.2.1 - # via mkdocs -colorama==0.4.6 - # via - # click - # griffe - # mkdocs - # mkdocs-material - # pytest +colorama==0.4.6 ; sys_platform == 'win32' + # via pytest distlib==0.4.0 # via virtualenv exceptiongroup==1.3.0 ; python_full_version < '3.11' # via pytest filelock==3.20.0 # via virtualenv -ghp-import==2.1.0 - # via mkdocs greenlet==3.2.4 ; platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64' # via sqlalchemy -griffe==1.14.0 - # via mkdocstrings-python identify==2.6.15 # via pre-commit -idna==3.11 - # via requests iniconfig==2.1.0 # via pytest -jinja2==3.1.6 - # via - # mkdocs - # mkdocs-material - # mkdocstrings -markdown==3.9 - # via - # mkdocs - # mkdocs-autorefs - # mkdocs-material - # mkdocstrings - # pymdown-extensions -markupsafe==3.0.3 - # via - # jinja2 - # mkdocs - # mkdocs-autorefs - # mkdocstrings -mergedeep==1.3.4 - # via - # mkdocs - # mkdocs-get-deps -mkdocs==1.6.1 - # via - # mkdocs-autorefs - # mkdocs-material - # mkdocstrings -mkdocs-autorefs==1.4.3 - # via - # mkdocstrings - # mkdocstrings-python -mkdocs-get-deps==0.2.0 - # via mkdocs -mkdocs-material==9.6.22 -mkdocs-material-extensions==1.3.1 - # via mkdocs-material -mkdocstrings==0.30.1 - # via mkdocstrings-python -mkdocstrings-python==1.18.2 - # via mkdocstrings nodeenv==1.9.1 # via pre-commit packaging==25.0 - # via - # mkdocs - # pytest -paginate==0.5.7 - # via mkdocs-material -pathspec==0.12.1 - # via mkdocs + # via pytest platformdirs==4.5.0 - # via - # mkdocs-get-deps - # virtualenv + # via virtualenv pluggy==1.6.0 # via pytest pre-commit==4.3.0 @@ -105,32 +36,12 @@ pydantic==2.12.2 pydantic-core==2.41.4 # via pydantic pygments==2.19.2 - # via - # mkdocs-material - # pytest -pymdown-extensions==10.16.1 - # via - # mkdocs-material - # mkdocstrings + # via pytest pytest==8.4.2 # via pytest-asyncio pytest-asyncio==1.2.0 -python-dateutil==2.9.0.post0 - # via ghp-import pyyaml==6.0.3 - # via - # mkdocs - # mkdocs-get-deps - # pre-commit - # pymdown-extensions - # pyyaml-env-tag -pyyaml-env-tag==1.1 - # via mkdocs -requests==2.32.5 - # via mkdocs-material -ruff==0.14.2 -six==1.17.0 - # via python-dateutil + # via pre-commit sqlalchemy==2.0.44 # via sqlalchemy-crud-plus tomli==2.3.0 ; python_full_version < '3.11' @@ -140,7 +51,6 @@ typing-extensions==4.15.0 # via # aiosqlite # exceptiongroup - # mkdocstrings-python # pydantic # pydantic-core # pytest-asyncio @@ -149,9 +59,5 @@ typing-extensions==4.15.0 # virtualenv typing-inspection==0.4.2 # via pydantic -urllib3==2.5.0 - # via requests virtualenv==20.35.3 # via pre-commit -watchdog==6.0.0 - # via mkdocs diff --git a/uv.lock b/uv.lock index 50d4781..9248160 100644 --- a/uv.lock +++ b/uv.lock @@ -997,13 +997,15 @@ dependencies = [ [package.dev-dependencies] dev = [ { name = "aiosqlite" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "ty" }, +] +docs = [ { name = "click" }, { name = "mkdocs-material" }, { name = "mkdocstrings", extra = ["python"] }, - { name = "pytest" }, - { name = "pytest-asyncio" }, { name = "ruff" }, - { name = "ty" }, ] lint = [ { name = "pre-commit" }, @@ -1018,13 +1020,15 @@ requires-dist = [ [package.metadata.requires-dev] dev = [ { name = "aiosqlite", specifier = ">=0.21.0" }, + { name = "pytest", specifier = ">=8.4.0" }, + { name = "pytest-asyncio", specifier = ">=1.2.0" }, + { name = "ty", specifier = ">=0.0.1a23" }, +] +docs = [ { name = "click", specifier = "==8.2.1" }, { name = "mkdocs-material", specifier = ">=9.6.22" }, { name = "mkdocstrings", extras = ["python"], specifier = ">=0.30.0" }, - { name = "pytest", specifier = ">=8.4.0" }, - { name = "pytest-asyncio", specifier = ">=1.2.0" }, { name = "ruff", specifier = ">=0.14.0" }, - { name = "ty", specifier = ">=0.0.1a23" }, ] lint = [{ name = "pre-commit", specifier = ">=4.3.0" }] From d16b273b207bdf0e7d0268a2b368f84162490eca Mon Sep 17 00:00:00 2001 From: Wu Clan Date: Wed, 29 Oct 2025 15:44:34 +0800 Subject: [PATCH 2/4] fix ci --- .github/workflows/docs.yml | 5 +++-- .github/workflows/lint.yml | 7 ++++--- .github/workflows/test.yml | 5 +++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d7ecc31..57db5cd 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -22,8 +22,9 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v6 - with: - python-version: 3.14 + + - name: Set up Python ${{ matrix.python-version }} + run: uv python install ${{ matrix.python-version }} - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b13f580..99dd2c0 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -19,12 +19,13 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v6 - with: - python-version: ${{ matrix.python-version }} + + - name: Set up Python ${{ matrix.python-version }} + run: uv python install ${{ matrix.python-version }} - name: Install dependencies run: | - uv sync --group lint + uv sync - name: Run lint run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dfcbf97..4f57a98 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -19,8 +19,9 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v6 - with: - python-version: ${{ matrix.python-version }} + + - name: Set up Python ${{ matrix.python-version }} + run: uv python install ${{ matrix.python-version }} - name: Install dependencies run: | From 5282139fe0a4f7611ed99711074877b323a36064 Mon Sep 17 00:00:00 2001 From: Wu Clan Date: Wed, 29 Oct 2025 15:48:01 +0800 Subject: [PATCH 3/4] fix ci --- .github/workflows/docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 57db5cd..6324b49 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -37,7 +37,7 @@ jobs: - run: sudo apt-get install pngquant - run: uv sync --group docs - - run: mkdocs gh-deploy --force + - run: uv run mkdocs gh-deploy --force env: GH_TOKEN: ${{ secrets.GH_TOKEN }} From 48eab07954b48aa371230d1c352421a806c1ab13 Mon Sep 17 00:00:00 2001 From: Wu Clan Date: Wed, 29 Oct 2025 15:49:46 +0800 Subject: [PATCH 4/4] update docs ci on --- .github/workflows/docs.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 6324b49..8e75b93 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -4,7 +4,6 @@ on: push: branches: - master - pull_request: permissions: contents: write