# Helper to set up Python and uv with caching

name: uv-install
description: Set up Python and uv with caching

inputs:
  python-version:
    description: Python version, supporting MAJOR.MINOR only
    required: true
  enable-cache:
    description: Enable caching for uv dependencies
    required: false
    default: "true"
  cache-suffix:
    description: Custom cache key suffix for cache invalidation
    required: false
    default: ""
  working-directory:
    description: Working directory for cache glob scoping
    required: false
    default: "**"

env:
  UV_VERSION: "0.11.15"

runs:
  using: composite
  steps:
    - name: Install uv and set the python version
      uses: astral-sh/setup-uv@0ca8f610542aa7f4acaf39e65cf4eb3c35091883 # v7
      with:
        version: ${{ env.UV_VERSION }}
        python-version: ${{ inputs.python-version }}
        enable-cache: ${{ inputs.enable-cache }}
        cache-dependency-glob: |
          ${{ inputs.working-directory }}/pyproject.toml
          ${{ inputs.working-directory }}/uv.lock
          ${{ inputs.working-directory }}/requirements*.txt
        cache-suffix: ${{ inputs.cache-suffix }}
