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 }}"