mirror of
https://github.com/pyenv/pyenv.git
synced 2026-09-10 15:46:17 -04:00
47 lines
1.6 KiB
YAML
47 lines
1.6 KiB
YAML
name: Build a Python version
|
|
description: >
|
|
Install python-build's system dependencies for the current runner's OS, build
|
|
and check the requested version.
|
|
inputs:
|
|
python-version:
|
|
description: A version as accepted by `pyenv install`.
|
|
required: true
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
# The two OSes differ only in this step.
|
|
- if: runner.os == 'macOS'
|
|
shell: bash
|
|
run: |
|
|
#prerequisites
|
|
brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd
|
|
- if: runner.os == 'Linux'
|
|
shell: bash
|
|
run: |
|
|
#prerequisites
|
|
sudo apt-get update -q; sudo apt install -yq make build-essential libssl-dev zlib1g-dev \
|
|
libbz2-dev libreadline-dev libsqlite3-dev curl \
|
|
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
|
|
- shell: bash
|
|
run: |
|
|
#envvars
|
|
export PYENV_ROOT="$GITHUB_WORKSPACE"
|
|
echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV
|
|
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
|
|
- shell: bash
|
|
run: |
|
|
#build
|
|
pyenv --debug install ${{ inputs.python-version }} && rc=$? || rc=$?
|
|
if [[ $rc -ne 0 ]]; then echo config.log:; cat "${TMPDIR:-/tmp}"/python-build*/*/config.log; false; fi
|
|
pyenv global ${{ inputs.python-version }}
|
|
pyenv rehash
|
|
- shell: bash
|
|
run: |
|
|
#print version
|
|
python --version
|
|
python -m pip --version
|
|
- shell: python # Prove that actual Python == expected Python
|
|
env:
|
|
EXPECTED_PYTHON: ${{ inputs.python-version }}
|
|
run: import os, sys ; assert sys.version.startswith(os.getenv("EXPECTED_PYTHON"))
|