name: Install Python, uv and dependencies. description: Install Python, uv and project dependencies using cache inputs: python-version: description: Python version required: true default: '3.10' uv-version: description: uv version required: true default: 'latest' uv-args: description: Extra uv args, for example dependencies to install, e.g. --extra tests --extra dev. required: false working-directory: description: Working directory for uv command. required: false default: . runs: using: composite steps: - name: Install uv uses: astral-sh/setup-uv@v8.0.0 with: version: ${{ inputs.uv-version }} enable-cache: true - name: Set up Python ${{ inputs.python-version }} id: setup_python uses: actions/setup-python@v6.2.0 with: python-version: ${{ inputs.python-version }} - name: Install Python dependencies run: uv sync --all-packages ${{ inputs.uv-args }} shell: bash working-directory: ${{ inputs.working-directory }}