diff --git a/setup-python/action.yml b/setup-python/action.yml index 4b748106..79c6530a 100644 --- a/setup-python/action.yml +++ b/setup-python/action.yml @@ -82,20 +82,23 @@ runs: if: runner.arch == 'ARM64' || inputs.force-pyenv != 'false' shell: sh run: | - export PYENV_ROOT="$HOME/.pyenv" - echo "PYENV_ROOT=$HOME/.pyenv" >> $GITHUB_ENV - - if [ ! -d "$PYENV_ROOT" ]; then - echo " ==== installing pyenv at: $PYENV_ROOT" - curl https://pyenv.run | bash - else - echo " ==== pyenv directory found at: $PYENV_ROOT" + env | sort + + if [ -z "${PYENV_ROOT+x}" ]; then + export PYENV_ROOT="$HOME/.pyenv" + echo "PYENV_ROOT=$HOME/.pyenv" >> $GITHUB_ENV + + if [ ! -d "$PYENV_ROOT" ]; then + echo " ==== installing pyenv at: $PYENV_ROOT" + curl https://pyenv.run | bash + else + echo " ==== pyenv directory found at: $PYENV_ROOT" + fi + + export PATH="$PYENV_ROOT/bin:$PATH" + echo "PATH=$PYENV_ROOT/bin:$PATH" >> $GITHUB_ENV fi - - export PATH="$PYENV_ROOT/bin:$PATH" - echo "PATH=$PYENV_ROOT/bin:$PATH" >> $GITHUB_ENV - - # Ensure pyenv is up to date + if ! (pyenv -h > /dev/null 2> /dev/null); then echo " ==== pyenv -h exited with non-zero status" type pyenv || true @@ -105,6 +108,8 @@ runs: ls -l "$PYENV_ROOT/bin" || true exit 1 fi + + # Ensure pyenv is up to date pyenv update FULL_PY_VERSION=$(pyenv install --list | grep "^ ${{ inputs.python-version }}" | grep -v 'dev' | tail -n 1)