mirror of https://github.com/actions/setup-python
update pypy3 to point to 3.6 (#164)
This commit is contained in:
parent
723e46dad7
commit
3b3f2de1b1
|
@ -90,3 +90,24 @@ jobs:
|
||||||
|
|
||||||
- name: Run simple code
|
- name: Run simple code
|
||||||
run: python -c 'import math; print(math.factorial(5))'
|
run: python -c 'import math; print(math.factorial(5))'
|
||||||
|
|
||||||
|
setup-pypy:
|
||||||
|
name: Setup PyPy ${{ matrix.os }}
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
os: [macos-latest, windows-latest, ubuntu-16.04, ubuntu-18.04]
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: setup-python pypy3
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
python-version: 'pypy3'
|
||||||
|
|
||||||
|
- name: setup-python pypy2
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
python-version: 'pypy2'
|
||||||
|
|
|
@ -6445,7 +6445,7 @@ function installPython(workingDirectory) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const options = {
|
const options = {
|
||||||
cwd: workingDirectory,
|
cwd: workingDirectory,
|
||||||
env: Object.assign(Object.assign({}, process.env), IS_LINUX && { 'LD_LIBRARY_PATH': path.join(workingDirectory, 'lib') }),
|
env: Object.assign(Object.assign({}, process.env), (IS_LINUX && { LD_LIBRARY_PATH: path.join(workingDirectory, 'lib') })),
|
||||||
silent: true,
|
silent: true,
|
||||||
listeners: {
|
listeners: {
|
||||||
stdout: (data) => {
|
stdout: (data) => {
|
||||||
|
@ -6718,7 +6718,7 @@ function binDir(installDir) {
|
||||||
// For example, PyPy 7.0 contains Python 2.7, 3.5, and 3.6-alpha.
|
// For example, PyPy 7.0 contains Python 2.7, 3.5, and 3.6-alpha.
|
||||||
// We only care about the Python version, so we don't use the PyPy version for the tool cache.
|
// We only care about the Python version, so we don't use the PyPy version for the tool cache.
|
||||||
function usePyPy(majorVersion, architecture) {
|
function usePyPy(majorVersion, architecture) {
|
||||||
const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion.toString());
|
const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion);
|
||||||
let installDir = findPyPy(architecture);
|
let installDir = findPyPy(architecture);
|
||||||
if (!installDir && IS_WINDOWS) {
|
if (!installDir && IS_WINDOWS) {
|
||||||
// PyPy only precompiles binaries for x86, but the architecture parameter defaults to x64.
|
// PyPy only precompiles binaries for x86, but the architecture parameter defaults to x64.
|
||||||
|
@ -6765,7 +6765,9 @@ function useCpythonVersion(version, architecture) {
|
||||||
}
|
}
|
||||||
core.exportVariable('pythonLocation', installDir);
|
core.exportVariable('pythonLocation', installDir);
|
||||||
if (IS_LINUX) {
|
if (IS_LINUX) {
|
||||||
const libPath = (process.env.LD_LIBRARY_PATH) ? `:${process.env.LD_LIBRARY_PATH}` : '';
|
const libPath = process.env.LD_LIBRARY_PATH
|
||||||
|
? `:${process.env.LD_LIBRARY_PATH}`
|
||||||
|
: '';
|
||||||
const pyLibPath = path.join(installDir, 'lib');
|
const pyLibPath = path.join(installDir, 'lib');
|
||||||
if (!libPath.split(':').includes(pyLibPath)) {
|
if (!libPath.split(':').includes(pyLibPath)) {
|
||||||
core.exportVariable('LD_LIBRARY_PATH', pyLibPath + libPath);
|
core.exportVariable('LD_LIBRARY_PATH', pyLibPath + libPath);
|
||||||
|
@ -6819,9 +6821,10 @@ function findPythonVersion(version, architecture) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
switch (version.toUpperCase()) {
|
switch (version.toUpperCase()) {
|
||||||
case 'PYPY2':
|
case 'PYPY2':
|
||||||
return usePyPy(2, architecture);
|
return usePyPy('2', architecture);
|
||||||
case 'PYPY3':
|
case 'PYPY3':
|
||||||
return usePyPy(3, architecture);
|
// keep pypy3 pointing to 3.6 for backward compatibility
|
||||||
|
return usePyPy('3.6', architecture);
|
||||||
default:
|
default:
|
||||||
return yield useCpythonVersion(version, architecture);
|
return yield useCpythonVersion(version, architecture);
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,8 +37,11 @@ function binDir(installDir: string): string {
|
||||||
// A particular version of PyPy may contain one or more versions of the Python interpreter.
|
// A particular version of PyPy may contain one or more versions of the Python interpreter.
|
||||||
// For example, PyPy 7.0 contains Python 2.7, 3.5, and 3.6-alpha.
|
// For example, PyPy 7.0 contains Python 2.7, 3.5, and 3.6-alpha.
|
||||||
// We only care about the Python version, so we don't use the PyPy version for the tool cache.
|
// We only care about the Python version, so we don't use the PyPy version for the tool cache.
|
||||||
function usePyPy(majorVersion: 2 | 3, architecture: string): InstalledVersion {
|
function usePyPy(
|
||||||
const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion.toString());
|
majorVersion: '2' | '3.6',
|
||||||
|
architecture: string
|
||||||
|
): InstalledVersion {
|
||||||
|
const findPyPy = tc.find.bind(undefined, 'PyPy', majorVersion);
|
||||||
let installDir: string | null = findPyPy(architecture);
|
let installDir: string | null = findPyPy(architecture);
|
||||||
|
|
||||||
if (!installDir && IS_WINDOWS) {
|
if (!installDir && IS_WINDOWS) {
|
||||||
|
@ -188,9 +191,10 @@ export async function findPythonVersion(
|
||||||
): Promise<InstalledVersion> {
|
): Promise<InstalledVersion> {
|
||||||
switch (version.toUpperCase()) {
|
switch (version.toUpperCase()) {
|
||||||
case 'PYPY2':
|
case 'PYPY2':
|
||||||
return usePyPy(2, architecture);
|
return usePyPy('2', architecture);
|
||||||
case 'PYPY3':
|
case 'PYPY3':
|
||||||
return usePyPy(3, architecture);
|
// keep pypy3 pointing to 3.6 for backward compatibility
|
||||||
|
return usePyPy('3.6', architecture);
|
||||||
default:
|
default:
|
||||||
return await useCpythonVersion(version, architecture);
|
return await useCpythonVersion(version, architecture);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue