123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- author: MatteoH2O1999
- name: Build and Setup Python
- branding:
- icon: play-circle
- color: blue
- description: "Set up a specific version of Python (building from source if deprecated) and add the command-line tools to the PATH."
- inputs:
- python-version:
- description: "Version range or exact version of Python or PyPy to use, using SemVer's version range syntax. Reads from .python-version if unset."
- python-version-file:
- description: "File containing the Python version to use. Example: .python-version"
- cache:
- description: "Used to specify a package manager for caching in the default directory. Supported values: pip, pipenv, poetry."
- required: false
- architecture:
- description: "The target architecture (x86, x64) of the Python or PyPy interpreter."
- check-latest:
- description: "Set this option if you want the action to check for the latest available version that satisfies the version spec."
- default: false
- token:
- description: "The token used to authenticate when fetching Python distributions from https://github.com/actions/python-versions. When running this action on github.com, the default value is sufficient. When running on GHES, you can pass a personal access token for github.com if you are experiencing rate limiting."
- default: ${{ github.server_url == 'https://github.com' && github.token || '' }}
- cache-dependency-path:
- description: "Used to specify the path to dependency files. Supports wildcards or a list of file names for caching multiple dependencies."
- update-environment:
- description: "Set this option if you want the action to update environment variables."
- default: true
- cache-build:
- required: false
- description: Whether to cache the built Python distribution to speed up successive runs (true or false, defaults to false).
- default: false
- allow-build:
- required: false
- description: "Set the behavior of the action when actions/setup-python fails and has to be built from source. Supported values: allow, info, warn, error, force. Default: warn"
- default: warn
- allow-prereleases:
- description: "When 'true', a version range passed to 'python-version' input will match prerelease versions if no GA versions are found. Only 'x.y' version range is supported for CPython."
- default: false
- outputs:
- python-version:
- description: "The installed Python or PyPy version. Useful when given a version range as input."
- value: ${{ steps.setup.outputs.python-version }}
- cache-hit:
- description: "A boolean value to indicate a cache entry was found."
- value: ${{ steps.setup.outputs.cache-hit }}
- python-path:
- description: "The absolute path to the Python or PyPy executable."
- value: ${{ steps.setup.outputs.python-path }}
- env:
- # Temporary workaround for Python 3.5 failures - May 2024
- PIP_TRUSTED_HOST: "pypi.python.org pypi.org files.pythonhosted.org"
- runs:
- using: composite
- steps:
- - uses: MatteoH2O1999/build-and-install-python@004dc2989b38616af18eb8aba45fe49d5f813264
- id: build
- with:
- python-version: ${{ inputs.python-version }}
- python-version-file: ${{ inputs.python-version-file }}
- architecture: ${{ inputs.architecture }}
- check-latest: ${{ inputs.check-latest }}
- cache-build: ${{ inputs.cache-build }}
- allow-build: ${{ inputs.allow-build }}
- token: ${{ inputs.token }}
- allow-prereleases: ${{ inputs.allow-prereleases }}
- - uses: actions/setup-python@bd6b4b6205c4dbad673328db7b31b7fab9e241c0
- id: setup
- with:
- python-version: ${{ steps.build.outputs.python-version }}
- cache: ${{ inputs.cache }}
- architecture: ${{ steps.build.outputs.architecture }}
- check-latest: ${{ inputs.check-latest }}
- token: ${{ inputs.token }}
- cache-dependency-path: ${{ inputs.cache-dependency-path }}
- update-environment: ${{ inputs.update-environment }}
- - run: ${{ github.action_path }}/setup_pip.ps1
- shell: pwsh
- env:
- PYTHON_VERSION: ${{ steps.setup.outputs.python-version }}
- SETUP_PYTHON_PATH: ${{ steps.setup.outputs.python-path }}
|