name: 'Setup Python Environment' description: 'Set up Python and install dependencies with optional configurations.' inputs: python-version: description: 'Python version to set up. Accepts a version number, "current", or "next".' required: true default: 'current' cache: description: 'Cache dependencies. Options: pip' required: false default: 'pip' requirements-type: description: 'Type of requirements to install. Options: base, development, default' required: false default: 'dev' install-superset: description: 'Whether to install Superset itself. If false, only python is installed' required: false default: 'true' runs: using: 'composite' steps: - name: Interpret Python Version id: set-python-version shell: bash run: | if [ "${{ inputs.python-version }}" = "current" ]; then echo "PYTHON_VERSION=3.10" >> $GITHUB_ENV elif [ "${{ inputs.python-version }}" = "next" ]; then echo "PYTHON_VERSION=3.11" >> $GITHUB_ENV elif [ "${{ inputs.python-version }}" = "previous" ]; then echo "PYTHON_VERSION=3.9" >> $GITHUB_ENV else echo "PYTHON_VERSION=${{ inputs.python-version }}" >> $GITHUB_ENV fi - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@v5 with: python-version: ${{ env.PYTHON_VERSION }} cache: ${{ inputs.cache }} - name: Install dependencies run: | if [ "${{ inputs.install-superset }}" = "true" ]; then sudo apt-get update && sudo apt-get -y install libldap2-dev libsasl2-dev pip install --upgrade pip setuptools wheel uv if [ "${{ inputs.requirements-type }}" = "dev" ]; then uv pip install --system -r requirements/development.txt elif [ "${{ inputs.requirements-type }}" = "base" ]; then uv pip install --system -r requirements/base.txt fi uv pip install --system -e . fi shell: bash