mirror of
https://github.com/apache/superset.git
synced 2026-06-02 06:09:21 +00:00
68 lines
2.5 KiB
YAML
68 lines
2.5 KiB
YAML
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
|
|
env:
|
|
INPUT_PYTHON_VERSION: ${{ inputs.python-version }}
|
|
run: |
|
|
if [ "$INPUT_PYTHON_VERSION" = "current" ]; then
|
|
RESOLVED_VERSION="3.11"
|
|
elif [ "$INPUT_PYTHON_VERSION" = "next" ]; then
|
|
# currently disabled in GHA matrixes because of library compatibility issues
|
|
RESOLVED_VERSION="3.12"
|
|
elif [ "$INPUT_PYTHON_VERSION" = "previous" ]; then
|
|
RESOLVED_VERSION="3.10"
|
|
elif printf '%s' "$INPUT_PYTHON_VERSION" | grep -Eq '^[0-9]+\.[0-9]+(\.[0-9]+)?$'; then
|
|
RESOLVED_VERSION="$INPUT_PYTHON_VERSION"
|
|
else
|
|
echo "Invalid python-version: '$INPUT_PYTHON_VERSION'" >&2
|
|
exit 1
|
|
fi
|
|
echo "python-version=$RESOLVED_VERSION" >> "$GITHUB_OUTPUT"
|
|
- name: Set up Python ${{ steps.set-python-version.outputs.python-version }}
|
|
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
|
|
with:
|
|
python-version: ${{ steps.set-python-version.outputs.python-version }}
|
|
cache: ${{ inputs.cache }}
|
|
- name: Install dependencies
|
|
env:
|
|
INPUT_INSTALL_SUPERSET: ${{ inputs.install-superset }}
|
|
INPUT_REQUIREMENTS_TYPE: ${{ inputs.requirements-type }}
|
|
run: |
|
|
if [ "$INPUT_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 [ "$INPUT_REQUIREMENTS_TYPE" = "dev" ]; then
|
|
uv pip install --system -r requirements/development.txt
|
|
elif [ "$INPUT_REQUIREMENTS_TYPE" = "base" ]; then
|
|
uv pip install --system -r requirements/base.txt
|
|
fi
|
|
|
|
uv pip install --system -e .
|
|
fi
|
|
shell: bash
|