ci: sanitize python path before quality setup
Some checks failed
CI/CD Pipeline / Manual Action Help (push) Has been skipped
CI/CD Pipeline / Start Dev Containers in Dokploy (push) Has been skipped
CI/CD Pipeline / Drop and Recreate Dev Database (push) Has been skipped
CI/CD Pipeline / Quality Gate (push) Failing after 2s
CI/CD Pipeline / Build and Push Images (push) Has been skipped
CI/CD Pipeline / Deploy Dev in Dokploy (push) Has been skipped
CI/CD Pipeline / Internal Notify (push) Successful in 1s

This commit is contained in:
2026-04-28 16:25:38 +02:00
parent e4e099ef19
commit 018798d71d
2 changed files with 26 additions and 1 deletions

View File

@@ -85,8 +85,27 @@ jobs:
run: | run: |
set -euo pipefail set -euo pipefail
rm -rf .venv .ci-python-env rm -rf .venv .ci-python-env
CLEAN_PATH=""
IFS=: read -r -a PATH_PARTS <<< "${PATH}"
for path_part in "${PATH_PARTS[@]}"; do
case "${path_part}" in
.venv/bin|*/.venv/bin)
continue
;;
esac
CLEAN_PATH="${CLEAN_PATH:+${CLEAN_PATH}:}${path_part}"
done
export PATH="${CLEAN_PATH}"
hash -r
PROJECT_PYTHON_VERSION="$(cat .python-version 2>/dev/null || printf '%s' "${PYTHON_VERSION}")" PROJECT_PYTHON_VERSION="$(cat .python-version 2>/dev/null || printf '%s' "${PYTHON_VERSION}")"
PYTHON_BIN="$(./scripts/ensure-ci-python.sh "${PROJECT_PYTHON_VERSION}")" PYTHON_BIN="$(./scripts/ensure-ci-python.sh "${PROJECT_PYTHON_VERSION}")"
case "${PYTHON_BIN}" in
.venv/*|*/.venv/*)
echo "Refusing to use project virtualenv as base Python: ${PYTHON_BIN}" >&2
exit 1
;;
esac
"${PYTHON_BIN}" --version
printf 'PYTHON_BIN=%s\n' "${PYTHON_BIN}" > .ci-python-env printf 'PYTHON_BIN=%s\n' "${PYTHON_BIN}" > .ci-python-env
@@ -94,6 +113,12 @@ jobs:
run: | run: |
set -euo pipefail set -euo pipefail
. ./.ci-python-env . ./.ci-python-env
case "${PYTHON_BIN}" in
.venv/*|*/.venv/*)
echo "Refusing to create venv from project virtualenv: ${PYTHON_BIN}" >&2
exit 1
;;
esac
"${PYTHON_BIN}" -m venv .venv "${PYTHON_BIN}" -m venv .venv
. .venv/bin/activate . .venv/bin/activate
python -m pip install "uv==${UV_VERSION}" python -m pip install "uv==${UV_VERSION}"

View File

@@ -34,7 +34,7 @@ python_has_venv() {
print_if_usable() { print_if_usable() {
local candidate="$1" local candidate="$1"
case "${candidate}" in case "${candidate}" in
"${PWD}/.venv/"*) .venv/*|*/.venv/*)
return 1 return 1
;; ;;
esac esac