Fix: Use pyenv for PyPI verify jobs
[releng/global-jjb.git] / jenkins-init-scripts / lf-env.sh
index bd9f780..f80dc79 100644 (file)
@@ -227,12 +227,16 @@ lf-activate-venv () {
         #     1. --venv-file <path/to/file> as lf_venv
         #     2. default: "/tmp/.os_lf_venv"
         # - Create new venv when 1. and 2. is absent
-        if [ -f "$venv_file" ]; then
+        if [[ -f "$venv_file" ]]; then
             lf_venv=$(cat "$venv_file")
             echo "${FUNCNAME[0]}(): INFO: Reuse venv:$lf_venv from" \
                 "file:$venv_file"
-        elif [ ! -f "$venv_file" ]; then
-            $python -m venv "$install_args" "$lf_venv" || return 1
+        elif [[ ! -f "$venv_file" ]]; then
+            if [[ -n "$install_args" ]]; then
+                $python -m venv "$install_args" "$lf_venv" || return 1
+            else
+                $python -m venv "$lf_venv" || return 1
+            fi
             echo "${FUNCNAME[0]}(): INFO: Creating $python venv at $lf_venv"
             echo "$lf_venv" > "$venv_file"
             echo "${FUNCNAME[0]}(): INFO: Save venv in file: $venv_file"
@@ -241,13 +245,13 @@ lf-activate-venv () {
         "$lf_venv/bin/pip" install --upgrade --quiet pip virtualenv || return 1
         if [[ -z $pkg_list ]]; then
             echo "${FUNCNAME[0]}(): WARNING: No packages to install"
-            return 0
+        else
+            echo "${FUNCNAME[0]}(): INFO: Installing: $pkg_list"
+            # $pkg_list is expected to be unquoted
+            # shellcheck disable=SC2086
+            "$lf_venv/bin/pip" install --upgrade --quiet --upgrade-strategy eager \
+                                    $pkg_list || return 1
         fi
-        echo "${FUNCNAME[0]}(): INFO: Installing: $pkg_list"
-        # $pkg_list is expected to be unquoted
-        # shellcheck disable=SC2086
-        "$lf_venv/bin/pip" install --upgrade --quiet --upgrade-strategy eager \
-                                $pkg_list || return 1
         ;;
     *)
         lf-echo-stderr "${FUNCNAME[0]}(): ERROR: No support for: $python"