forked from MatteoH2O1999/setup-python
-
Notifications
You must be signed in to change notification settings - Fork 3
/
action.yml
80 lines (80 loc) · 4.04 KB
/
action.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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 }}