Add retried setup uv action (#818)

Signed-off-by: Glenn Jocher <[email protected]>
Co-authored-by: UltralyticsAssistant <[email protected]>
This commit is contained in:
Glenn Jocher
2026-07-24 12:45:45 +02:00
co-authored by UltralyticsAssistant
parent 7c651dd990
commit 82ab95dda0
4 changed files with 83 additions and 6 deletions
+3 -6
View File
@@ -28,17 +28,14 @@ jobs:
steps:
- uses: actions/checkout@v7
- uses: actions/setup-python@v6
- uses: ./setup-uv
with:
python-version: ${{ matrix.python-version }}
- uses: astral-sh/setup-uv@v7
with:
enable-cache: false
activate-environment: true
- name: Install dependencies
run: |
uv pip install --system -e ".[dev]"
uv pip install -e ".[dev]"
- name: Run Python tests
uses: ultralytics/actions/retry@main
+13
View File
@@ -184,6 +184,19 @@ Check every pull request commit author against the central Ultralytics CLA signa
[**📖 Full Documentation →**](cla/README.md)
### 6. Setup uv Action
Install the latest uv with retry support on Linux and macOS and optionally activate a Python environment.
```yaml
- uses: ultralytics/actions/setup-uv@main
with:
python-version: "3.14"
activate-environment: true
```
[**📖 Full Documentation →**](setup-uv/README.md)
## Python Package
Install the `ultralytics-actions` package for programmatic access to action utilities, including all [requirements](https://github.com/ultralytics/actions/blob/main/pyproject.toml), in a [**Python>=3.8**](https://www.python.org/) environment.
+19
View File
@@ -0,0 +1,19 @@
# Setup uv Action
Installs the latest [uv](https://docs.astral.sh/uv/) release with retry support on Linux and macOS and optionally activates a Python virtual environment.
## Usage
```yaml
- uses: ultralytics/actions/setup-uv@main
with:
python-version: "3.14"
activate-environment: true
```
## Inputs
| Input | Description | Required | Default |
| ---------------------- | ----------------------------------------- | -------- | ------- |
| `python-version` | Python version for uv commands | No | - |
| `activate-environment` | Create and activate a `.venv` environment | No | `false` |
+48
View File
@@ -0,0 +1,48 @@
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
name: "Setup uv"
description: "Install the latest uv with retry on Linux and macOS and optionally activate a Python environment"
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"
runs:
using: "composite"
steps:
- name: Validate platform
shell: bash
run: |
if [ "$RUNNER_OS" = "Windows" ]; then
echo "::error::setup-uv supports Linux and macOS runners"
exit 1
fi
- name: Install uv
uses: ultralytics/actions/retry@main
with:
run: |
set -o pipefail
curl -LsSf https://astral.sh/uv/install.sh | env UV_UNMANAGED_INSTALL="$RUNNER_TEMP/uv-bin" sh
echo "$RUNNER_TEMP/uv-bin" >> "$GITHUB_PATH"
- name: Configure environment
shell: bash
env:
ACTIVATE_ENVIRONMENT: ${{ inputs.activate-environment }}
INPUT_PYTHON_VERSION: ${{ inputs.python-version }}
run: |
if [ -n "$INPUT_PYTHON_VERSION" ]; then
export UV_PYTHON="$INPUT_PYTHON_VERSION"
echo "UV_PYTHON=$INPUT_PYTHON_VERSION" >> "$GITHUB_ENV"
fi
if [ "$ACTIVATE_ENVIRONMENT" = "true" ]; then
uv venv --clear
echo "VIRTUAL_ENV=$PWD/.venv" >> "$GITHUB_ENV"
echo "$PWD/.venv/bin" >> "$GITHUB_PATH"
fi