54 lines
1.8 KiB
YAML
54 lines
1.8 KiB
YAML
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
|
|
|
|
name: "Setup uv"
|
|
description: "Install uv with optional Python environment activation and dependency caching"
|
|
inputs:
|
|
python-version:
|
|
description: "Python version for uv commands"
|
|
required: false
|
|
default: ""
|
|
activate-environment:
|
|
description: "Create and activate a .venv environment"
|
|
required: false
|
|
default: "false"
|
|
enable-cache:
|
|
description: "Cache uv downloads between workflow runs"
|
|
required: false
|
|
default: "false"
|
|
cache-dependency-glob:
|
|
description: "Dependency files used to invalidate the uv cache"
|
|
required: false
|
|
default: "**/uv.lock"
|
|
ignore-empty-workdir:
|
|
description: "Suppress the warning when the working directory is intentionally empty"
|
|
required: false
|
|
default: "false"
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Install latest uv
|
|
id: latest
|
|
continue-on-error: true
|
|
uses: astral-sh/[email protected]
|
|
with:
|
|
version: latest
|
|
python-version: ${{ inputs.python-version }}
|
|
activate-environment: ${{ inputs.activate-environment }}
|
|
enable-cache: ${{ inputs.enable-cache }}
|
|
cache-dependency-glob: ${{ inputs.cache-dependency-glob }}
|
|
ignore-empty-workdir: ${{ inputs.ignore-empty-workdir }}
|
|
ignore-nothing-to-cache: true
|
|
|
|
- name: Install latest known uv
|
|
if: steps.latest.outcome == 'failure'
|
|
uses: astral-sh/[email protected]
|
|
with:
|
|
version: latest-known
|
|
python-version: ${{ inputs.python-version }}
|
|
activate-environment: ${{ inputs.activate-environment }}
|
|
enable-cache: ${{ inputs.enable-cache }}
|
|
cache-dependency-glob: ${{ inputs.cache-dependency-glob }}
|
|
ignore-empty-workdir: ${{ inputs.ignore-empty-workdir }}
|
|
ignore-nothing-to-cache: true
|