name: "Setup Python Environment" description: "Set up Python environment for the given Python version" inputs: python-version: description: "Python version to use" required: true default: "3.12" uv-version: description: "uv version to use" required: true default: "0.6.14" dependency-groups: description: "Space-separated dependency groups to install (e.g. 'dev test')" required: false default: "dev" runs: using: "composite" steps: - uses: actions/setup-python@v5 with: python-version: ${{ inputs.python-version }} - name: Install uv uses: astral-sh/setup-uv@v2 with: version: ${{ inputs.uv-version }} enable-cache: 'true' cache-suffix: ${{ matrix.python-version }} - name: Install Python dependencies run: | args=() if [ -n "${{ inputs.dependency-groups }}" ]; then for group in ${{ inputs.dependency-groups }}; do args+=(--group "$group") done fi uv sync --frozen "${args[@]}" shell: bash