30 lines
892 B
YAML
30 lines
892 B
YAML
name: "Setup Python + uv + sync"
|
|
description: "Checkout, install uv, and uv sync (with optional groups, default Python 3.10)"
|
|
inputs:
|
|
python-version:
|
|
description: "Python version to use"
|
|
required: false
|
|
default: "3.10"
|
|
groups:
|
|
description: "Comma-separated uv groups to sync (e.g. 'dev,docs'). Leave blank for default deps only."
|
|
required: false
|
|
default: ""
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup UV
|
|
uses: astral-sh/setup-uv@v6
|
|
|
|
- name: Sync environment
|
|
shell: bash
|
|
run: |
|
|
GROUP_FLAGS=()
|
|
if [ -n "${{ inputs.groups }}" ]; then
|
|
IFS=',' read -ra G <<< "${{ inputs.groups }}"
|
|
for g in "${G[@]}"; do GROUP_FLAGS+=( "--group" "$(echo $g | xargs)" ); done
|
|
fi
|
|
uv sync "${GROUP_FLAGS[@]}" --python "${{ inputs.python-version }}" |