mirror of
https://github.com/pyenv/pyenv.git
synced 2024-12-23 08:20:48 +00:00
42cace010b
Shims from executables bundled with some older Anaconda releases cause MacOS script check jobs to hang at the end
97 lines
3.6 KiB
YAML
97 lines
3.6 KiB
YAML
name: modified_scripts
|
|
on: [pull_request]
|
|
jobs:
|
|
discover_modified_scripts:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
versions: ${{steps.modified-versions.outputs.versions}}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- run: git fetch origin "$GITHUB_BASE_REF"
|
|
- shell: bash
|
|
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\/([^\/]+)\/.*)$/)
|
|
{ print $1.$2; }' \
|
|
| sort -u);
|
|
echo -e "versions<<!\\n$versions\\n!" >> $GITHUB_ENV
|
|
- id: modified-versions
|
|
run: |
|
|
echo -n "::set-output name=versions::"
|
|
echo "${{ env.versions }}" | jq -R . | jq -sc .
|
|
macos_build:
|
|
needs: discover_modified_scripts
|
|
if: needs.discover_modified_scripts.outputs.versions != '[""]'
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}}
|
|
os: ["macos-10.15", "macos-11"]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- run: |
|
|
brew install openssl openssl@1.1 readline sqlite3 xz zlib
|
|
- run: |
|
|
export PYENV_ROOT="$GITHUB_WORKSPACE"
|
|
echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV
|
|
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
|
|
- run: |
|
|
pyenv install ${{ matrix.python-version }}
|
|
pyenv global ${{ matrix.python-version }}
|
|
- run: |
|
|
python --version
|
|
python -m pip --version
|
|
- shell: python # Prove that actual Python == expected Python
|
|
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
|
|
# bundled executables in some Anaconda releases cause the post-run step to hang in MacOS
|
|
- run: |
|
|
pyenv global system
|
|
rm -f "$(pyenv root)"/shims/*
|
|
|
|
ubuntu_build:
|
|
needs: discover_modified_scripts
|
|
if: needs.discover_modified_scripts.outputs.versions != '[""]'
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}}
|
|
os: ["ubuntu-18.04", "ubuntu-20.04"]
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- run: |
|
|
sudo apt-get update -q; sudo apt-get install -yq build-essential \
|
|
libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \
|
|
wget curl llvm libncurses5-dev libncursesw5-dev \
|
|
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
|
|
- run: |
|
|
export PYENV_ROOT="$GITHUB_WORKSPACE"
|
|
echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV
|
|
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
|
|
- run: |
|
|
pyenv install ${{ 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:
|
|
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
|