|
|
@ -12,7 +12,7 @@ jobs: |
|
|
|
run: > |
|
|
|
versions=$(git diff "origin/$GITHUB_BASE_REF" --name-only -z |
|
|
|
| perl -ne 'BEGIN {$\="\n";$/="\0";} chomp; |
|
|
|
if (/^plugins\/python-build\/share\/python-build\/(?:([^\/]+)|patches\/([^\/]+)\/.*)$/) |
|
|
|
if (/^plugins\/python-build\/share\/python-build\/(?:([^\/]+)|patches\/([^\/]+)\/.*)$/ and -e $& ) |
|
|
|
{ print $1.$2; }' \ |
|
|
|
| sort -u); |
|
|
|
echo -e "versions<<!\\n$versions\\n!" >> $GITHUB_ENV |
|
|
@ -38,22 +38,33 @@ jobs: |
|
|
|
echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV |
|
|
|
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH |
|
|
|
- run: | |
|
|
|
pyenv install ${{ matrix.python-version }} |
|
|
|
pyenv install -v ${{ matrix.python-version }} |
|
|
|
pyenv global ${{ matrix.python-version }} |
|
|
|
- run: | |
|
|
|
python --version |
|
|
|
python -m pip --version |
|
|
|
- shell: python # Prove that actual Python == expected Python |
|
|
|
env: |
|
|
|
# Micropython doesn't support --version |
|
|
|
- run: > |
|
|
|
if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then |
|
|
|
python -c 'import sys; print(sys.version)' |
|
|
|
else |
|
|
|
python --version; |
|
|
|
python -m pip --version |
|
|
|
fi |
|
|
|
# Micropython doesn't support sys.executable, os.path, older versions even os |
|
|
|
- env: |
|
|
|
EXPECTED_PYTHON: ${{ matrix.python-version }} |
|
|
|
run: | |
|
|
|
import os, sys, os.path |
|
|
|
correct_dir = os.path.join( |
|
|
|
os.environ['PYENV_ROOT'], |
|
|
|
'versions', |
|
|
|
os.environ['EXPECTED_PYTHON'], |
|
|
|
'bin') |
|
|
|
assert os.path.dirname(sys.executable) == correct_dir |
|
|
|
if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then |
|
|
|
[[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 |
|
|
|
python -c 'import sys; assert sys.implementation.name == "micropython"' |
|
|
|
else |
|
|
|
python -c 'if True: |
|
|
|
import os, sys, os.path |
|
|
|
correct_dir = os.path.join( |
|
|
|
os.environ["PYENV_ROOT"], |
|
|
|
"versions", |
|
|
|
os.environ["EXPECTED_PYTHON"], |
|
|
|
"bin") |
|
|
|
assert os.path.dirname(sys.executable) == correct_dir' |
|
|
|
fi |
|
|
|
# bundled executables in some Anaconda releases cause the post-run step to hang in MacOS |
|
|
|
- run: | |
|
|
|
pyenv global system |
|
|
@ -80,18 +91,30 @@ jobs: |
|
|
|
echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV |
|
|
|
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH |
|
|
|
- run: | |
|
|
|
pyenv install ${{ matrix.python-version }} |
|
|
|
pyenv install -v ${{ matrix.python-version }} |
|
|
|
pyenv global ${{ matrix.python-version }} |
|
|
|
- run: python --version |
|
|
|
- run: python -m pip --version |
|
|
|
- shell: python # Prove that actual Python == expected Python |
|
|
|
env: |
|
|
|
# Micropython doesn't support --version |
|
|
|
- run: > |
|
|
|
if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then |
|
|
|
python -c 'import sys; print(sys.version)' |
|
|
|
else |
|
|
|
python --version; |
|
|
|
python -m pip --version |
|
|
|
fi |
|
|
|
# Micropython doesn't support sys.executable, os.path, older versions even os |
|
|
|
- env: |
|
|
|
EXPECTED_PYTHON: ${{ matrix.python-version }} |
|
|
|
run: | |
|
|
|
import os, sys, os.path |
|
|
|
correct_dir = os.path.join( |
|
|
|
os.environ['PYENV_ROOT'], |
|
|
|
'versions', |
|
|
|
os.environ['EXPECTED_PYTHON'], |
|
|
|
'bin') |
|
|
|
assert os.path.dirname(sys.executable) == correct_dir |
|
|
|
if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then |
|
|
|
[[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 |
|
|
|
python -c 'import sys; assert sys.implementation.name == "micropython"' |
|
|
|
else |
|
|
|
python -c 'if True: |
|
|
|
import os, sys, os.path |
|
|
|
correct_dir = os.path.join( |
|
|
|
os.environ["PYENV_ROOT"], |
|
|
|
"versions", |
|
|
|
os.environ["EXPECTED_PYTHON"], |
|
|
|
"bin") |
|
|
|
assert os.path.dirname(sys.executable) == correct_dir' |
|
|
|
fi |