fix(ci): avoid uv-managed python bootstrap on runners
This commit is contained in:
@@ -34,30 +34,18 @@ jobs:
|
||||
- name: Install Python and uv
|
||||
run: |
|
||||
set -euo pipefail
|
||||
if command -v python3.11 >/dev/null 2>&1; then
|
||||
BOOTSTRAP_PYTHON=python3.11
|
||||
elif command -v python3 >/dev/null 2>&1; then
|
||||
BOOTSTRAP_PYTHON=python3
|
||||
else
|
||||
echo "python3 is not available on the runner" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
timeout 180s "${BOOTSTRAP_PYTHON}" -m pip install --user --break-system-packages --upgrade pip uv
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
PROJECT_PYTHON_VERSION="$(cat .python-version 2>/dev/null || printf '%s' "${PYTHON_VERSION}")"
|
||||
timeout 300s uv python install "${PROJECT_PYTHON_VERSION}"
|
||||
PYTHON_BIN="$(uv python find --managed-python "${PROJECT_PYTHON_VERSION}")"
|
||||
PYTHON_BIN="$(./scripts/ensure-ci-python.sh "${PROJECT_PYTHON_VERSION}")"
|
||||
|
||||
printf 'PYTHON_BIN=%s\n' "${PYTHON_BIN}" > .ci-python-env
|
||||
|
||||
- name: Create virtual environment and install dependencies
|
||||
run: |
|
||||
set -euo pipefail
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
. ./.ci-python-env
|
||||
uv venv --python "${PYTHON_BIN}"
|
||||
"${PYTHON_BIN}" -m venv .venv
|
||||
. .venv/bin/activate
|
||||
python -m pip install --upgrade pip uv
|
||||
uv sync --dev --frozen
|
||||
|
||||
- name: Run Ruff linting
|
||||
@@ -121,30 +109,18 @@ jobs:
|
||||
- name: Install Python and uv
|
||||
run: |
|
||||
set -euo pipefail
|
||||
if command -v python3.11 >/dev/null 2>&1; then
|
||||
BOOTSTRAP_PYTHON=python3.11
|
||||
elif command -v python3 >/dev/null 2>&1; then
|
||||
BOOTSTRAP_PYTHON=python3
|
||||
else
|
||||
echo "python3 is not available on the runner" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
timeout 180s "${BOOTSTRAP_PYTHON}" -m pip install --user --break-system-packages --upgrade pip uv
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
PROJECT_PYTHON_VERSION="$(cat .python-version 2>/dev/null || printf '%s' "${PYTHON_VERSION}")"
|
||||
timeout 300s uv python install "${PROJECT_PYTHON_VERSION}"
|
||||
PYTHON_BIN="$(uv python find --managed-python "${PROJECT_PYTHON_VERSION}")"
|
||||
PYTHON_BIN="$(./scripts/ensure-ci-python.sh "${PROJECT_PYTHON_VERSION}")"
|
||||
|
||||
printf 'PYTHON_BIN=%s\n' "${PYTHON_BIN}" > .ci-python-env
|
||||
|
||||
- name: Create virtual environment and install dependencies
|
||||
run: |
|
||||
set -euo pipefail
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
. ./.ci-python-env
|
||||
uv venv --python "${PYTHON_BIN}"
|
||||
"${PYTHON_BIN}" -m venv .venv
|
||||
. .venv/bin/activate
|
||||
python -m pip install --upgrade pip uv
|
||||
uv sync --dev --frozen
|
||||
|
||||
- name: Run regular pytest suite
|
||||
@@ -233,22 +209,11 @@ jobs:
|
||||
fi
|
||||
tar -xzf "${ARCHIVE_PATH}"
|
||||
|
||||
- name: Install Python and uv for artifact environment
|
||||
- name: Install Python for artifact environment
|
||||
run: |
|
||||
set -euo pipefail
|
||||
if command -v python3.11 >/dev/null 2>&1; then
|
||||
BOOTSTRAP_PYTHON=python3.11
|
||||
elif command -v python3 >/dev/null 2>&1; then
|
||||
BOOTSTRAP_PYTHON=python3
|
||||
else
|
||||
echo "python3 is not available on the runner" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
timeout 180s "${BOOTSTRAP_PYTHON}" -m pip install --user --break-system-packages --upgrade pip uv
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
PROJECT_PYTHON_VERSION="$(cat .python-version 2>/dev/null || printf '%s' "${PYTHON_VERSION}")"
|
||||
timeout 300s uv python install "${PROJECT_PYTHON_VERSION}"
|
||||
./scripts/ensure-ci-python.sh "${PROJECT_PYTHON_VERSION}" >/dev/null
|
||||
|
||||
- name: Run API inventory pytest suite
|
||||
env:
|
||||
|
||||
27
scripts/ensure-ci-python.sh
Executable file
27
scripts/ensure-ci-python.sh
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
TARGET_VERSION="${1:-3.11}"
|
||||
IFS="." read -r PYTHON_MAJOR PYTHON_MINOR _ <<< "${TARGET_VERSION}"
|
||||
|
||||
if [[ -n "${PYTHON_MINOR:-}" ]]; then
|
||||
PYTHON_BIN="python${PYTHON_MAJOR}.${PYTHON_MINOR}"
|
||||
else
|
||||
PYTHON_BIN="python${PYTHON_MAJOR}"
|
||||
fi
|
||||
|
||||
if command -v "${PYTHON_BIN}" >/dev/null 2>&1; then
|
||||
command -v "${PYTHON_BIN}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
apt-get update
|
||||
apt-get install -y software-properties-common
|
||||
add-apt-repository -y ppa:deadsnakes/ppa
|
||||
apt-get update
|
||||
apt-get install -y "${PYTHON_BIN}" "${PYTHON_BIN}-venv"
|
||||
|
||||
command -v "${PYTHON_BIN}"
|
||||
Reference in New Issue
Block a user