diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index c71e69d..e2f3fd7 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -419,10 +419,23 @@ jobs: - name: Validate backend (imports and app instantiation) run: | - # Install Python 3.12 (required for modern type hints like str | None) - apt-get update && apt-get install -y software-properties-common - add-apt-repository -y ppa:deadsnakes/ppa - apt-get update && apt-get install -y python3.12 python3.12-venv python3.12-dev + # Install Python 3.12 using pyenv (required for modern type hints like str | None) + # Debian Bullseye doesn't have Python 3.12 in default repos, so we use pyenv + apt-get update && apt-get install -y \ + make build-essential libssl-dev zlib1g-dev \ + libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ + libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \ + libffi-dev liblzma-dev git + + # Install pyenv + export PYENV_ROOT="/opt/pyenv" + export PATH="$PYENV_ROOT/bin:$PATH" + curl https://pyenv.run | bash + + # Install Python 3.12 using pyenv + eval "$(pyenv init -)" + pyenv install -v 3.12.7 + pyenv global 3.12.7 # Create virtual environment with Python 3.12 python3.12 -m venv /tmp/backend-venv